打字稿:第一个“this”参数的目的是什么?

时间:2018-05-28 13:14:28

标签: typescript

我找到了以下方法的签名

export function retry<T>(this: Observable<T>, count: number = -1): Observable<T> {
  return higherOrder(count)(this) as Observable<T>;
}

第一个参数是this并键入Observable<T>。虽然参数中有this似乎是错误的,但编译器接受这种语法,我已经看过几次这种模式了。有人可以解释它的目的是什么吗?

1 个答案:

答案 0 :(得分:0)

From the docs

为功能指定此类型 继续在类或接口中指定它的类型后,函数和方法现在可以声明它们期望的类型。

默认情况下,函数内部的类型是any。从TypeScript 2.0开始,您可以提供显式的此参数。这个参数是假函数,它们首先出现在函数的参数列表中:

function f(this: void) {
    // make sure `this` is unusable in this standalone function
}