我有一个父基类,它设置了子类中使用的一些常用功能,如下所示:
class BaseClass() {
constructor(someValue){
this.value = value
}
methodToBeOverridden(){
//This is implemented in the child class.
}
}
我想知道在上面的子类中被重写的方法的普遍做法。目前,我只留下一句话而已。有更好的方法吗?
最佳答案
如果打算在继承methodToBeOverridden()
的类中实现BaseClass
,则可以抛出父级。
methodToBeOverridden() {
throw new Error('This method needs to be implemented!');
}
但实际上我不确定我是否明白这一点-如果您只是未在
methodToBeOverridden()
中定义BaseClass
并在某个子实例上调用它,由于未定义该方法,无论如何都会引发错误。TypeScript具有abstract classes的概念,可以更恰当地解决您的问题。
abstract class BaseClass {
constructor(public value: any) {
//
}
abstract methodToBeOverridden(): void;
}