📜  TypeScript 中的箭头/lambda 函数是什么?

📅  最后修改于: 2022-05-13 01:56:14.484000             🧑  作者: Mango

TypeScript 中的箭头/lambda 函数是什么?

Arrow/ lambda函数是 Typescript 中普通函数的简洁形式。箭头函数也称为 lambda 函数。我们在箭头函数中使用“=>”(箭头符号),我们不使用' 函数'关键字。当我们希望我们的代码简短而不是每次都调用该函数时,我们可以使用此方法。

句法:

  • 具有多个参数的箭头函数:

    (param1, param2, ..., paramN) => expression;
  • 不带参数的箭头函数:

    () => expressions;

示例 1(带参数的箭头函数):在下面的代码中,我们创建了一个带有两个参数 name 和 roll_no 的箭头函数。该函数返回一个包含两个参数的字符串。我们使用 { } 大括号和 return 关键字。

Javascript
let string1 = (name: string, roll_no: number) => {
  return "i am " + name + " and my roll no is "
  + `${roll_no.toString()}`;
};
  
console.log(string1("srinivas", 49));


Javascript
let string1 = (name: string, roll_no: number) =>
  "i am " + name + " and my roll no is " 
  + `${roll_no.toString()}`;
  
console.log(string1("srinivas", 49));


Javascript
let str1 = () => "this is geeksforgeeks";
console.log(str1());


Javascript
class StudentDetail {
  name: string;
  cgpa: number;
  
  constructor(name: string, cgpa: number) {
    this.name = name;
    this.cgpa = cgpa;
  }
  
  displayString = () =>
    console.log("student_name : " + this.name + 
    " student_cgpa : " + this.cgpa);
}
  
let student1 = new StudentDetail("sarah", 9.45);
student1.displayString();


输出:

i am srinivas and my roll no is 49

通常,当我们只有一条语句要执行时,我们不需要使用 { } 大括号和返回关键字。我们可以编写如下代码:

Javascript

let string1 = (name: string, roll_no: number) =>
  "i am " + name + " and my roll no is " 
  + `${roll_no.toString()}`;
  
console.log(string1("srinivas", 49));

输出:

i am srinivas and my roll no is 49

示例 2(不带参数的箭头函数):这是一个箭头函数不带参数并返回字符串的示例。

Javascript

let str1 = () => "this is geeksforgeeks";
console.log(str1());

输出:

this is geeksforgeeks

示例 3(类中的箭头函数):创建一个类,该类具有两个属性,类型字符串的名称和类型编号的 CGPA。还有一个类方法可以返回并显示学生详细信息的字符串。此示例显示箭头函数也可以在类中使用。

Javascript

class StudentDetail {
  name: string;
  cgpa: number;
  
  constructor(name: string, cgpa: number) {
    this.name = name;
    this.cgpa = cgpa;
  }
  
  displayString = () =>
    console.log("student_name : " + this.name + 
    " student_cgpa : " + this.cgpa);
}
  
let student1 = new StudentDetail("sarah", 9.45);
student1.displayString();

输出:

student_name : sarah student_cgpa : 9.45