这就是我要做的:
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();
d2
是Derived
类型,并且d3
为DerivedAgain
类型,如预期。