······
····
Инженерия12 мар 2026

TypeScript — базовый стандарт, не опция

evolve team
config.tsTypeScript — strict
1type ProjectConfig = {
2 name: string
3 budget: number
4 deadline: Date
5}
6
7const config: ProjectConfig = {
8 name: "evolve dashboard",
9 budget: "50000",
10 deadline: "2026-04-01"
11}

2 errors — caught at compile time, not in production

ypeScript — это JavaScript с аннотациями типов: описаниями того, какие данные хранит переменная или ожидает функция. При сборке TypeScript проверяет, что все эти описания соответствуют реальному коду. Если что-то не совпадает — сборка падает. Это звучит как лишняя работа, но это то же самое трение, что делает ремень безопасности неудобным в застёгивании и катастрофой в отсутствие.

Экономика простая. Ошибка типа, пойманная при компиляции, займёт несколько минут на исправление — видишь красную подсветку в редакторе, сразу понимаешь, что не так, и правишь. Та же ошибка в продакшене — это тикет в поддержку, сессия отладки, хотфикс-деплой и потеря доверия пользователей. Команды, которые считают TypeScript опциональным, по сути выбирают отложить, а не устранить свои расходы на отладку.

Помимо отлова ошибок, TypeScript меняет то, как команды работают вместе. Когда у функции типизированные входы и выходы, вы понимаете её без запуска. Когда вы переименовываете свойство, компилятор показывает каждое место, которое нужно обновить — не на ревью на следующее утро, а прямо сейчас в редакторе. Когда приходит новый разработчик, типы работают как живая документация: что нужно функции, что она возвращает, что может пойти не так.

Во всех проектах мы включаем строгий режим: noImplicitAny, strictNullChecks, exactOptionalPropertyTypes. Настройка добавляет немного трения в первый день. После этого — убирает его навсегда. Клиенты, которые приходят к нам от команд, где TypeScript был опциональным, сразу замечают разницу — не в самом коде, а в уверенности при каждом деплое.

Инженерия