[英]How do I create a late-binding clone method in TypeScript classes?
我想为我的所有数据类制作一个简单的 Cloneable 接口,在 JavaScript 中很容易做到。 但是如何在 TypeScript 中正确键入它并不明显。
我目前正在像这样一起破解它:
class BaseClass implements Cloneable {
clone() {
return new (this.constructor as any)(this.data);
}
}
我希望所有子类的clone
方法返回它们自己的类型而不是BaseClass
。 例如:
class ExampleSubclass extends BaseClass {}
const foo = new ExampleSubclass();
const bar = foo.clone(); // Expecting `bar` to be `ExampleSubclass`, neither `BaseClass` nor `Cloneable`.
有没有更合适的方法来进行后期绑定?
我相信你应该投它
class BaseClass {
clone() {
return new (this.constructor as any)(this.data) as typeof this;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.