@Boris007

Как вызывать метод в классе, которого нет, но он есть в том, который наследует его?

Есть два класса
В первом классе нет метода getName, но он есть во втором
Как правильно оформить
static verify() {
   const name = this.getName()
}

что бы не было ошибки о том, что getNameне существует в классе Model

class Model {
   static verify() {
      const name = this.getName()
   }
}

class User extends Model {
   static name = 'Boris'
   static getName() { return this.name) }
}


Property 'getName' does not exist on type 'typeof Model'.
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
abstract class Model {
   verify() {
      const name = this.getName()
   }

   abstract getName(): string;
}

class User extends Model {
   private name = 'Boris'
   override getName() { return this.name; }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos
Наследование в другую сторону работает. Методы дочернего класса не доступны родительским классам.

Оформляйте метод в базовом классе, в дочернем перегружайте поведение
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы