TypeScript ThisType

ThisType<T>,该工具类型比较特殊,它不是用于构造一个新类型,而是用于定义对象字面量的方法中this的类型。如果对象字面量的类型是“ThisType<T>”类型或包含“ThisType<T>”类型的交叉类型,那么在对象字面量的方法中this的类型为T。在使用“ThisType<T>”工具类型时需要启用“--noImplicitThis”编译选项。示例如下:

/**
* --noImplicitThis=true
*/

let obj: ThisType<{ x: number }> & { getX: () => number };

obj = {
   getX() {
       this; // { x: number; y: number; }

       return this.x;
   },
};

此例中,使用交叉类型为对象字面量 obj 指定了“ThisType<T>”类型,因此 obj 中getX方法的 this 类型为“{ x: number; }”类型。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!