打字稿返回类型的继承类



这就是我要做的:

class Base{
    clone(){
        //return new instance of the inherited  class 
    }
}
class Derived extends Base{
}
const d1=new Derived();
const d2=d2.clone; // I want d2 to be of type Derived

d2的克隆方法的返回类型是什么?

我真的希望有一种更好的方法,但这是我目前要做的:

class Base{
    clone(): this {
        return new (this.constructor as any)(); 
    }
}
class Derived extends Base {
}
class DerivedAgain extends Derived {
}
const d1=new Derived();
const d2 = d1.clone(); 
const d3 = new DerivedAgain().clone();

d2Derived类型,并且d3DerivedAgain类型,如预期。

最新更新