跳到主要内容

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

参考答案:

在 TypeScript(以及 JavaScript)中,箭头函数(也称为 lambda 函数)是一种更简洁的函数表达式,用于创建一个新的函数。箭头函数提供了一种更简洁、更简洁的语法,使得编写内联函数(即作为参数传递的函数)或回调(即作为参数传递并在稍后的某个时间点调用的函数)变得更加容易。

箭头函数的基本语法如下:

(parameters) => { functionBody }

这是一个简单的示例,其中箭头函数被用作回调函数:

const numbers = [1, 2, 3, 4, 5];

numbers.forEach(num => {
  console.log(num);
});

在这个例子中,箭头函数 (num) => { console.log(num); } 是一个回调函数,它被传递给 forEach 方法。这个函数对数组中的每个元素执行一次。

箭头函数的一个重要特点是它们不绑定自己的 this,它们从封闭的执行上下文中继承 this 值。这使得它们非常适合在回调和事件处理器中使用,其中 this 通常需要在外部上下文中定义。

例如:

class MyClass {
  private myField: number = 0;

  constructor() {
    // 使用箭头函数,`this` 指向 MyClass 实例
    setTimeout(() => {
      console.log(this.myField);
    }, 1000);
  }
}

const myInstance = new MyClass();

在这个例子中,setTimeout 的回调是一个箭头函数,所以 this 在回调内部指向 MyClass 的实例。如果我们使用普通函数(非箭头函数)作为回调,this 将会指向全局对象(在浏览器中是 window),这可能会导致错误。