我想做这样的事情:
class Base {
static foo(): <???>; // <= What goes here?
}
class Subclass extends Base {}
Subclass.foo() // <= I want this to have a return type of Subclass, not Base
Run Code Online (Sandbox Code Playgroud)
在过去的一年中,TypeScript一直在积极地添加功能,包括支持在泛型中使用类类型。此示例在2.3或更高版本中进行编译:
interface Constructor<M> {
new (...args: any[]): M
}
class Base {
static foo<T extends Base>(this: Constructor<T>): T {
return new this()
}
}
class Subclass extends Base {
readonly bar = 1
}
// Prove we have a Subclass instance by invoking a subclass-specific method:
Subclass.foo().bar
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
855 次 |
| 最近记录: |