Mr.*_*ith 3 generics derived-class typescript
我想从基类返回"this"作为泛型类型参数.
class ExampleClass<T> {
public returnThis = (): T => {
return <T>this;
}
}
Run Code Online (Sandbox Code Playgroud)
我知道我不能转换为T因为typescript不知道T派生自ExampleClass.
但是有办法做到这一点吗?
你可以只返回类型this:
class ExampleClass<T> {
public returnThis = (): this => {
return this;
}
}
Run Code Online (Sandbox Code Playgroud)
它包含在文档的Polymorphic这个类型部分中.
不,它将返回实际实例的类型,例如:
class BaseClass {
public returnThis(): this {
return this;
}
}
class ExampleClass extends BaseClass {}
let base = new BaseClass();
let base2 = base.returnThis(); // base2 instanceof BaseClass
let example = new ExampleClass();
let example2 = example.returnThis(); // example2 instanceof ExampleClass
Run Code Online (Sandbox Code Playgroud)
(游乐场代码)