Typescript:使用';这个';?
如果我返回一个“自定义”类型的接口,并使用typeof,那么我就得到了原始类型(我理解为什么,我读过它),但我可以得到自定义类型吗 如果我有以下资料:Typescript:使用';这个';?,typescript,types,interface,Typescript,Types,Interface,如果我返回一个“自定义”类型的接口,并使用typeof,那么我就得到了原始类型(我理解为什么,我读过它),但我可以得到自定义类型吗 如果我有以下资料: interface X{ A:()=>Omit<typeof this, "A">, B:()=>Omit<typeof this, "B">, C:()=>Omit<typeof this, "C">, } let X : X = {...} 接口X{ A:()=>省略
interface X{
A:()=>Omit<typeof this, "A">,
B:()=>Omit<typeof this, "B">,
C:()=>Omit<typeof this, "C">,
}
let X : X = {...}
接口X{
A:()=>省略,
B:()=>省略,
C:()=>省略,
}
设X:X={…}
如果希望实现以下目标:
即1:
X.A().B().C()
即2:
X.C().A().B()
但不是:
X.A().B().A()(目前可能)类型脚本确实具有多态
此类型,因此您可以编写此接口:
interface X{
A:()=>Omit<this, "A">,
B:()=>Omit<this, "B">,
C:()=>Omit<this, "C">,
}
我想知道为什么多态这个
不只是计算调用方法的对象的类型。演出还是我没有看到的一些正确性问题?@jcalz我认为这将是一个性能陷阱。将每个调用站点设置为通用推理站点可能会降低性能。那么,多态这个的使用频率是多少?可能不是很多。可能是一个有趣的GH讨论话题,虽然在这一点上,这将只是一个学术讨论,因为这将是一个突破性的变化。但如果我想返回一个新类型的X呢?我只能返回它自己你的意思是你想从中省略属性?检查以下答案:
interface X{
A:<T>(this: T)=>Omit<T, "A">,
B:<T>(this: T)=>Omit<T, "B">,
C:<T>(this: T)=>Omit<T, "C">,
}
let X: X = null!
X.A().B().C()
X.C().A().B()
X.A().B().A() // err