Typescript:从通用基类返回"this"

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.
但是有办法做到这一点吗?

Nit*_*mer 9

你可以只返回类型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)

(游乐场代码)