PassFront
  1. PassFront
  2. База знаний
  3. Типизация классов и ООП

Как наследуются от класса в TypeScript?

Типизация классов и ООП

Класс в TypeScript наследуют через `extends`, вызывая конструктор родителя через `super()`.

class Animal {
  constructor(protected name: string) {}
  speak(): string {
    return `${this.name} издаёт звук`;
  }
}

class Dog extends Animal {
  constructor(name: string, private breed: string) {
    super(name); // обязательно до обращения к this
  }
  override speak(): string {
    return `${this.name} лает`;
  }
}

Что важно

  • `super(...)` нужно вызвать в конструкторе потомка до использования this.
  • Модификаторы доступа: private — только в самом классе, protected — в классе и потомках, public — везде.
  • `override` явно помечает переопределённый метод; с флагом noImplicitOverride без него будет ошибка.
  • Абстрактные классы (abstract class) нельзя создать напрямую, а абстрактные методы потомок обязан реализовать.
  • `implements` — проверить, что класс соответствует интерфейсу (это не наследование реализации).

Совет

Наследование глубже 1–2 уровней усложняет код — часто лучше композиция.

Коротко для собеседования

class B extends A, в конструкторе super(); доступом управляют private/protected/public, переопределение помечают override, abstract задаёт обязательные методы.

Подробнее: TypeScript Handbook — Classes