Главная / Статьи / Внутри переписывания TypeScript 7 на Go: ускорение без изменений в коде

Внутри переписывания TypeScript 7 на Go: ускорение без изменений в коде

Узнайте, как компилятор TypeScript 7 на основе Go обеспечивает в 8-12 раз более быструю сборку, почему так работает изменение архитектуры и как безопасно обновлять существующие проекты.

836 слов

Теперь компилятор работает на движке на основе Go, вашему существующему коду не требуются изменения, а время сборки значительно сократилось

Крупные обновления инструментов, которые появляются лишь раз в несколько лет, обычно приводят к изменению вашей ежедневной рабочей процедуры, и TypeScript 7 соответствует этой тенденции. Microsoft пересоздала компилятор для значительно лучшей производительности — полные сборки выполняются в 8–12 раз быстрее — без необходимости вносить какие-либо изменения в функции языка, которые вы уже используете.

Что было фактически выпущено

TypeScript 7 появился 8 июля 2026 года, заменив компилятор на основе JavaScript на нативную реализацию на Go, созданную в рамках внутреннего проекта под названием Project Corsa. Стоит отметить, что это верная портация, а не полный переработанный вариант: логика проверки типов и семантика языка были переведены строчка за строчкой, поэтому ваши файлы с расширением .ts будут вести себя точно так же, как и раньше. Изменился только движок, выполняющий эту логику, а не сама логика.

Согласно внутренним тестам Microsoft, проведённым на собственном кодовом базисе VS Code, время загрузки проектов сократилось с почти одной минуты до примерно десяти секунд. Это главный результат. На практике задержка, которая раньше возникала при запуске команды tsc --watch после смены веток, практически исчезает.

Почему он настолько быстрее

Большая часть ускорения обусловлена двумя архитектурными изменениями.

  • Компилируемый нативный код вместо работы через Node.js и движок V8
  • Параллелизм с общей памятью, позволяющий выполнять парсинг, проверку типов и генерацию кода одновременно на нескольких ядрах CPU

В этой версии также представлены новые флаги --checkers и --builders, которые позволяют контролировать количество параллельных рабочих потоков, отвечающих за проверку типов и сборку проектов. Режим наблюдения также был переработан: теперь он использует механизм отслеживания файлов на основе Go, изначально разработанный для Parcel, что позволяет выполнять пошаговую пересборку значительно быстрее в крупных монорепозиториях.

Как произвести обновление

Установка нового компилятора происходит точно так же, как и раньше:

npm install -D typescript
npx tsc --version
# TypeScript 7.0

Не требуется миграция конфигурации, нет кодомодов для запуска, а также не нужно учитывать какие-либо изменения синтаксиса, могущие повлиять на работу. Если ваша команда уже использовала пакет @typescript/native-preview на этапе кандидата в релиз, то эта функциональность — основанная на бинарном файле tsgo — была включена обратно в стандартный пакет typescript, доступный через тег распространения next.

Следует обратить внимание на один момент: API программного компилятора ещё не полностью стабилизировалось. Если ваша схема сборки, конфигурация ESLint или пользовательские инструменты напрямую зависят от API TypeScript, а не просто вызывают tsc, пока избегайте написания нового кода, использующего такие интерфейсы, как createProgram. Командам, находящимся в такой ситуации, следует отложить полную замену до выхода версии 7.1, поскольку ожидается, что в этой версии будут устранены проблемы, возникшие во время работ по переходу в прошлом году.

Что это означает для проектов React и Next.js

Поскольку многие инструменты фреймворков построены на компиляторе TypeScript, они автоматически получают преимущества в плане производительности. Проверка типов во время сборки в Next.js, отзывчивость функции IntelliSense в редакторе в крупных библиотеках компонентов, созданных с использованием Redux или Tailwind, а также проверка типов в проектах монорепозитория становятся быстрее без необходимости вносить какие-либо изменения в код. Для команд, которые откладывали включение параметра strict: true, считая, что полная проверка типов по всему проекту слишком медленна, сейчас подходящее время, чтобы пересмотреть своё решение — вычислительные затраты на такую проверку снизились в десять раз.

Основные выводы

  • TypeScript 7 переписывает компилятор, а не сам язык — проверка типов вашего кода происходит так же, но уже на новом движке на основе Go.
  • Полные сборки выполняются в 8–12 раз быстрее, а загрузка проектов в редакторе также становится значительно быстрее.
  • Обновление происходит очень просто — достаточно выполнить команду npm install, но избегайте использования программного API для создания собственных инструментов до выхода версии 7.1.
  • Проекты на основе фреймворков, включая приложения React и Next.js, автоматически получают ускорение без необходимости изменения настроек.
  • Если раньше вы откладывали включение строгой проверки типов из-за длительного времени сборки, теперь у вас больше нет такого оправдания. Установите новую версию, запустите существующий набор тестов — и вы увидите снижение времени работы CI-пайплайна.

    Связанные материалы

  • Что такое частичная предварительная обработка и одновременная обработка: пояснение — Узнайте, как функции частичной предварительной обработки в Next.js и одновременной обработки в React устраняют проблему медленной работы приложений, позволяя фреймворкам планировать и выполнять задачи поэтапно вместо того, чтобы рассматривать процесс отрисовки как единый блокирующий этап.
  • Стандарты полноценного стека JavaScript на 2026 год: TypeScript, RSC и другие технологии — Объясняется, почему TypeScript, серверные компоненты React и более эффективные методы управления состоянием стали стандартным набором инструментов для команд, работающих с JavaScript, в 2026 году.
  • Навык AGENTS.md от Vercel обучает ИИ-ассистентов 70 лучшим практикам React — практический обзор навыка agent react-best-practices от Vercel, демонстрирующий, как он встрояет 70 проверенных в реальных проектах правил React непосредственно в код, сгенерированный ИИ.