二. OmitThisParameter<Type> 有了ThisParameterType获取 this 的类型,那么如何将一个定义了 this 参数类型的函数类型中的this 参数类型去掉呢? 这就是OmitThisParameter做的事情。 一句话概括,就是对于没有定义 this 参数类型的函数类型,直接返回这个函数类型,如果定义了 this 参数类型,就返回一个仅是去掉了 this ...
classRectangle{privatew:number;privateh:number;constructor(w:number,h:number){this.w=w;this.h=h;}getArea(this:Rectangle){return()=>{returnthis.w*this.h;};}} 与前面定义的Rectangle长方形类不同,在getArea方法中,我们使用了this参数,之后this的类型是Rectangle类型,如下图所示: 在Rectangle长方形类get...
function numberToString(n: ThisParameterType<typeof toHex>) { return toHex.apply(n); } OmitThisParameter<Type> // 从T中移除this参数,如果T没有显式声明此参数,则结果只是T,否则,从T创建一个不带此参数的新函数类型。泛型被删除,只有最后一个重载签名被传播到新的函数类型中。 type OmitThisParameter<T...
function foo(this: { name: string }, info: {name: string}) { console.log(this, info) } //2.OmitOmitThisParameter: 删除this参数类型, 剩余的函数类型 type PureFooType=OmiThisParameter<typeOf foo> 1. 2. 3. 4. 5. 3、ThisType 这个类型不返回一个转换过的类型,它被用作标记一个上下文的t...
ThisParameterType OmitThisParameter ThisType 快捷跳转 [玩转TypeScript工具类型(上)] [玩转TypeScript工具类型(中)] 一. ThisParameterType 提取一个函数类型显式定义的 this 参数,如果没有显式定义的 this 参数,则返回 unknown 。 这里有如下几个需要注意的点: ...
🔍 第一部分:认识 TypeScript,这个“超集”是个啥? TypeScript,简称 TS,是由微软打造的 JavaScript 超集。什么意思?简单说,你所有能写的 JS 代码在 TS 里都能写,只不过它多了个强大武器:类型系统。 和JS 最大的区别就是——TS 会在你写代码的时候就告诉你哪里错了。
OmitThisParameter 用来去除函数类型中的 this 类型。如果传入的函数类型没有显式声明 this 类型,那么返回的仍是原来的函数类型。 // 第一个条件语句如果传入的函数参数没有 this 类型,则返回原类型; // 否则通过 infer 分别获取函数参数和返回值的类型构造一个新的没有 this 的函数类型,并返回这个函数类型。
type OmitThisParameter2 = OmitThisParameter<string> // string 1. 2. 3. 4. 5. 16.ThisType 该工具类型比较特殊,它不是用来构造新类型的,而是用于定义对象字面量的方法中的 this 的类型。如果对象字面量的类型是 ThisType 或者是包含 ThisType 的交叉类型,那么在对象字面量的方法中的 this 类型为 T。
1 new (ParameterList) => Type new 是关键字,ParameterList 表示可选的构造函数形式参数列表类型,Type 表示构造函数返回值类型。 十、构造签名 构造签名的用法与调用签名类似。若在对象类型中定义了构造签名类型成员,那么我们称该对象类型为构造函数类型。构造签名的语法如下所示: 1 2 3 { new (ParameterList)...
https://www.typescriptlang.org/docs/handbook/utility-types.html#thisparametertypetype 有用的泛型: Capitalize<StringType> Uncapitalize<StringType> 8.ts类型中的逆变协变 https://mp.weixin.qq.com/s/fqlwqENlatj_u9aRctP41Q 子类型变量是可以赋值给父类型变量的虽然赋值成功,但是animal变量并没有.miao这...