Typescript:使用';这个';?

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:()=>省略

如果我返回一个“自定义”类型的接口,并使用typeof,那么我就得到了原始类型(我理解为什么,我读过它),但我可以得到自定义类型吗

如果我有以下资料:

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