← Все статьи

TypeScript 7.0 RC: компилятор на Go и ускорение до 10×

Microsoft выпустила RC TypeScript 7.0 на новой Go-основе: совместимость с 6.0, параллельная сборка, пакет @typescript/typescript6 и переработанный --watch.

Содержание

Коротко

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 поэтапно (сначала ночные сборки, потом основную ветку).

На практике

  1. Поставьте RC в отдельную веткуnpm install typescript@rc (или версию из анонса) и сравните время tsc --noEmit с 6.0.
  2. Используйте @typescript/typescript6 — если плагины или скрипты жёстко завязаны на старый бинарник, держите оба до стабилизации цепочки инструментов.
  3. Настройте параллелизм — для больших репозиториев подберите число воркеров под CI-раннер (не «максимум ядер» вслепую).
  4. Проверьте --watch локально — особенно если раньше страдали от пропущенных изменений или лишних полных пересборок.
  5. Зафиксируйте расхождения диагностик — любое отличие от 6.0 на RC — повод завести задачу в репозитории TypeScript, пока окно миграции открыто.
Сценарий Ожидаемый выигрыш
Малый одностраничный интерфейс Быстрее, но не революция
Крупный monorepo До порядка 10× на «холодной» сборке
Dev --watch Меньше лагов, стабильнее на всех ОС

Итог

TypeScript 7.0 RC — инфраструктурный релиз: тот же язык для разработчика, другой двигатель под капотом. Имеет смысл начать эксперимент на CI сейчас, пока RC собирает обратную связь, и не откладывать сравнение диагностик с 6.0 — именно это определит, насколько безболезненным будет финальный GA.