Типизация дисциплинирует. Просто описав интерфейсы функций ты сразу начинаешь думать о том, как у тебя данные ходят по приложению, как изменяются, и всё такое. И если ты что-то не можешь типизировать нормально - скорее всего у тебя код херово написан, а не замороченые процессы, реально требующие, чтобы поле объекта могло быть строкой, числом, чертом с рогами и null. И тайпскрипт стоит притащить только ради этого.