TypeScript — базовый стандарт, не опция
2 errors — caught at compile time, not in production
ypeScript — это JavaScript с аннотациями типов: описаниями того, какие данные хранит переменная или ожидает функция. При сборке TypeScript проверяет, что все эти описания соответствуют реальному коду. Если что-то не совпадает — сборка падает. Это звучит как лишняя работа, но это то же самое трение, что делает ремень безопасности неудобным в застёгивании и катастрофой в отсутствие.
Экономика простая. Ошибка типа, пойманная при компиляции, займёт несколько минут на исправление — видишь красную подсветку в редакторе, сразу понимаешь, что не так, и правишь. Та же ошибка в продакшене — это тикет в поддержку, сессия отладки, хотфикс-деплой и потеря доверия пользователей. Команды, которые считают TypeScript опциональным, по сути выбирают отложить, а не устранить свои расходы на отладку.
Помимо отлова ошибок, TypeScript меняет то, как команды работают вместе. Когда у функции типизированные входы и выходы, вы понимаете её без запуска. Когда вы переименовываете свойство, компилятор показывает каждое место, которое нужно обновить — не на ревью на следующее утро, а прямо сейчас в редакторе. Когда приходит новый разработчик, типы работают как живая документация: что нужно функции, что она возвращает, что может пойти не так.
Во всех проектах мы включаем строгий режим: noImplicitAny, strictNullChecks, exactOptionalPropertyTypes. Настройка добавляет немного трения в первый день. После этого — убирает его навсегда. Клиенты, которые приходят к нам от команд, где TypeScript был опциональным, сразу замечают разницу — не в самом коде, а в уверенности при каждом деплое.