Главный выигрыш — перенос ошибок из production на compile time: компилятор предупреждает о неверных аргументах и обращениях к возможному undefined. На команде типы — документация, которая не устаревает; рефакторинг безопаснее, потому что компилятор показывает все сломанные места.
Разбор
Ключевые пункты:
- Ошибки на compile time вместо production: опечатки, неверные аргументы, неожиданный
undefined.
- Типы — живая документация; autocomplete и refactor надёжны в больших codebases.
- Честный нюанс: есть цена (обучение, конфиг, борьба с типами); типы стираются — данные с API всё равно валидировать в runtime (Zod и т.п.).
Как ответить на собеседовании
«TypeScript сдвигает класс ошибок на этап компиляции и делает командный рефакторинг предсказуемым. Но типы не заменяют runtime-валидацию внешних данных — на границе системы я всё равно проверяю shape.»
Итог
TS — compile-time safety и living docs; не silver bullet и не замена validation на boundary.