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; }”
类型。
酷客网相关文章:
评论前必须登录!
注册