Выбор ответа Senior Классы и интерфейсы обновлено
override и noImplicitOverride
Вопрос
Какую проблему решает noImplicitOverride вместе с ключевым словом override (TS 4.3+)?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Требует override у переопределений и ругается на override без метода в родителе. Без флага переименование метода в базовом классе молча превращает «переопределение» в наследнике в новый, никем не вызываемый метод.
Варианты ответа
- Запрещает наследоваться от классов, объявленных в node_modules
- Делает все методы класса финальными, если они не помечены
override - Ускоряет вызов переопределённых методов за счёт прямой ссылки на родителя
- Требует
overrideу переопределений и ругается наoverrideбез метода в родителеправильный ответ
Разбор
Без флага переименование метода в базовом классе молча превращает «переопределение» в наследнике в новый, никем не вызываемый метод. С noImplicitOverride каждое переопределение явно помечено, и TS проверяет связь в обе стороны. На наследование из библиотек и на производительность это не влияет, финальных методов в TS нет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.