ThisType

    现在,在对象字面量方法中的 this 类型,将由以下决定:

    • 如果这个方法显示指定了 this 参数,那么 this 具有该参数的类型。(下例子中 bar
    • 否则,如果 —noImplicitThis 选项已经启用,并且对象字面量中包含由 ThisType<T> 键入的上下文类型,那么 的类型为 T
    • 否则,如果 —noImplicitThis 选项已经启用,this 具有该对象字面量的类型。

    通过 API 转换参数的形式来生成 this 的值的情景下,可以通过创建一个新的 ThisType<T> 标记接口,可用于在上下文中表明转换后的类型。尤其是当字面量中的上下文类型为 ThisType<T> 或者是包含 ThisType<T> 的交集时,显得尤为有效,对象字面量方法中 this 的类型即为 T

    的接口,在 lib.d.ts 只是被声明为空的接口,除了可以在对象字面量上下文中可以被识别以外,该接口的作用等同于任意空接口。