Javascript переопределяющие родительские классы функционируют в лучших практиках дочерних классов - PullRequest
0 голосов
/ 05 октября 2019

У меня есть родительский базовый класс, который устанавливает некоторые общие функции, которые используются в дочернем классе, что-то вроде этого:

class BaseClass() {

    constructor(someValue){
        this.value = value
    }
    methodToBeOverridden(){
        //This is implemented in the child class.
    }
}

Я хочу знать, что является обычной практикой для методов, которые переопределяютсяв детских классах, как показано выше. В настоящее время я просто оставляю комментарий, в котором ничего нет. Есть ли лучший способ сделать это?

1 Ответ

1 голос
/ 05 октября 2019

Если вы намерены реализовать methodToBeOverridden() в классах, наследующих BaseClass, вы можете добавить родительский элемент.

methodToBeOverridden() {
    throw new Error('This method needs to be implemented!');
}

, но на самом деле я не уверен, что вижу смысл вэто - если вы просто не определяете methodToBeOverridden() в BaseClass и вызываете его для некоторого дочернего экземпляра, в любом случае будет выдана ошибка, так как метод не определен.


Концепция TypeScript имеет концепциюиз абстрактных классов , которые более уместно решают вашу проблему.

abstract class BaseClass {
    constructor(public value: any) {
      //
    }

    abstract methodToBeOverridden(): void;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...