我有一个父基类,它设置了子类中使用的一些常用功能,如下所示:

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;
}

09-25 20:03