lazalu68
@lazalu68
Salmon

Почему typescript не ругается на отсутствующее обязательное свойство во вложенном объекте?

Существует простенькая система вложенных объектов, для которой тайпскрипт почему-то не указывает на вполне очевидные ошибки типизации вложенных объектов, вот пример (ts 3.5.1).

Если удалить 17ую строку, то ts будет ругаться на отсутствие обязательного для интерфейса Layout свойства class.
Если удалить 23ую строку, то ts будет ругаться на отсутствие обязательного для интерфейса Element свойства type.
А если удалить 29ую строку, то ts ругаться не будет, хотя было удалено свойство type, которое он так яростно защищал в предыдущем пункте.

Такое же поведение наблюдается в IDEA которая использует ts 3.5.3.

Я что-то упускаю из виду или это ошибка ts?
  • Вопрос задан
  • 288 просмотров
Решения вопроса 1
@forspamonly2
там есть ограничение уровней вложенности (в районе пяти одинаковых генерик параметров в глубину). говорят, это чтобы не зацикливалось навсегда:

https://github.com/microsoft/TypeScript/issues/239...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы