Содержание
Коротко
Microsoft объявила Release Candidate TypeScript 7.0 — первый крупный релиз на новом фундаменте: компилятор переписан на Go вместо самоподдерживаемого TypeScript-кода. Обещают до 10× ускорения относительно 6.0 при сохранении структурной совместимости типизации и возможности ставить 7.0 рядом с 6.0.
Что произошло
Разработка TS 7.0 шла больше года: существующая кодовая база компилятора портирована на Go, сохраняя ту же логику проверки типов, что и в 6.0. Это не «другой язык типов», а тот же семантический контракт на более быстром рантайме.
Установка — через npm, как обычно. Для постепенной миграции появился пакет @typescript/typescript6: можно держать старый компилятор в одном репозитории, пока команда проверяет 7.0 на CI и в IDE.
Ключевые улучшения помимо «просто быстрее»:
- Параллелизация — настраиваемое число воркеров для type-check и project builder; выигрыш заметнее на больших монорепо.
--watch— переработан с новым механизмом слежения за файлами (заимствован из Parcel): стабильнее на macOS/Linux/Windows, меньше лишних пересборок.- Структурный паритет с 6.0 — цель RC: те же ошибки на тех же файлах, что и у предыдущей мажорной ветки.
Почему это важно
Скорость компилятора — не показатель «для галочки»: в монорепо с сотнями пакетов каждая секунда tsc умножается на каждую отправку в репозиторий и локальный цикл разработчика. Go-реализация — ставка на предсказуемую производительность и параллелизм без переписывания экосистемы @types/* и конфигов tsconfig.
RC — момент, когда командам стоит прогнать 7.0 на репрезентативном срезе проекта: не только «собирается», но и совпадают диагностики. Пакет совместимости с 6.0 снижает риск миграции «одним махом»: можно переключать CI поэтапно (сначала ночные сборки, потом основную ветку).
На практике
- Поставьте RC в отдельную ветку —
npm install typescript@rc(или версию из анонса) и сравните времяtsc --noEmitс 6.0. - Используйте
@typescript/typescript6— если плагины или скрипты жёстко завязаны на старый бинарник, держите оба до стабилизации цепочки инструментов. - Настройте параллелизм — для больших репозиториев подберите число воркеров под CI-раннер (не «максимум ядер» вслепую).
- Проверьте
--watchлокально — особенно если раньше страдали от пропущенных изменений или лишних полных пересборок. - Зафиксируйте расхождения диагностик — любое отличие от 6.0 на RC — повод завести задачу в репозитории TypeScript, пока окно миграции открыто.
| Сценарий | Ожидаемый выигрыш |
|---|---|
| Малый одностраничный интерфейс | Быстрее, но не революция |
| Крупный monorepo | До порядка 10× на «холодной» сборке |
Dev --watch |
Меньше лагов, стабильнее на всех ОС |
Итог
TypeScript 7.0 RC — инфраструктурный релиз: тот же язык для разработчика, другой двигатель под капотом. Имеет смысл начать эксперимент на CI сейчас, пока RC собирает обратную связь, и не откладывать сравнение диагностик с 6.0 — именно это определит, насколько безболезненным будет финальный GA.