Выбор ответа Senior Классы и интерфейсы обновлено

override и noImplicitOverride

Вопрос

Какую проблему решает noImplicitOverride вместе с ключевым словом override (TS 4.3+)?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Требует override у переопределений и ругается на override без метода в родителе. Без флага переименование метода в базовом классе молча превращает «переопределение» в наследнике в новый, никем не вызываемый метод.

Варианты ответа

  1. Запрещает наследоваться от классов, объявленных в node_modules
  2. Делает все методы класса финальными, если они не помечены override
  3. Ускоряет вызов переопределённых методов за счёт прямой ссылки на родителя
  4. Требует override у переопределений и ругается на override без метода в родителеправильный ответ

Разбор

Без флага переименование метода в базовом классе молча превращает «переопределение» в наследнике в новый, никем не вызываемый метод. С noImplicitOverride каждое переопределение явно помечено, и TS проверяет связь в обе стороны. На наследование из библиотек и на производительность это не влияет, финальных методов в TS нет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.