TypeScript 7.0: нативный компилятор на Go ускоряет сборку в 10 раз

Microsoft выпустила TypeScript 7.0 — крупное обновление популярного языка программирования, которое обещает радикально ускорить сборку проектов. Ключевое изменение — новый компилятор, написанный на Go, который обеспечивает прирост производительности от 8 до 12 раз по сравнению с предыдущими версиями

TypeScript 7.0: нативный компилятор на Go ускоряет сборку в 10 раз

Microsoft выпустила TypeScript 7.0 — крупное обновление популярного языка программирования, которое обещает радикально ускорить сборку проектов. Ключевое изменение — новый компилятор, написанный на Go, который обеспечивает прирост производительности от 8 до 12 раз по сравнению с предыдущими версиями. Это первый релиз, в котором нативная реализация полностью заменяет оригинальный компилятор на TypeScript, что знаменует собой важную веху в развитии экосистемы. Разработчики, работающие с крупными кодовыми базами, отмечают, что время сборки сокращается с минут до секунд. Например, на реальных проектах, таких как VS Code, компиляция теперь занимает в 10 раз меньше времени. Это достигается за счет использования Go — языка, известного своей эффективностью и быстрым выполнением, что позволяет обрабатывать большие объемы кода параллельно и более эффективно использовать ресурсы процессора.

Почему TypeScript 7.0 стал таким быстрым?

Чтобы понять, почему TypeScript 7.0 так сильно ускорился, нужно заглянуть в историю. TypeScript, созданный Microsoft в 2012 году, стал стандартом для разработки крупных веб-приложений. Однако с ростом проектов компилятор, написанный на самом TypeScript, начал становиться узким местом. Разработчики жаловались на медленные сборки, особенно в монорепозиториях с тысячами файлов. Microsoft уже несколько лет работала над решением этой проблемы, и в 2025 году анонсировала проект по переносу компилятора на нативный код. Использование Go не случайно: этот язык известен своей производительностью и простотой параллельного программирования. Команда TypeScript также экспериментировала с Rust, но в итоге выбрала Go из-за более быстрой разработки и простоты интеграции с существующей инфраструктурой. Переход на нативный компилятор — это часть более широкой стратегии Microsoft по оптимизации инструментов разработки, включая недавние улучшения в VS Code и Azure DevOps.

Как новый компилятор на Go улучшает производительность?

Новый компилятор TypeScript 7.0 написан на Go и использует все преимущества этого языка: эффективное управление памятью, быструю компиляцию и возможность распараллеливания задач. Вместо того чтобы интерпретировать код на JavaScript, как это делал старый компилятор, новая версия транслирует TypeScript в машинный код, что позволяет выполнять анализ и генерацию кода значительно быстрее. Для разработчиков переход на TypeScript 7.0 не требует изменения кода: язык полностью совместим с предыдущими версиями. Однако для тех, кто использует программный API TypeScript (например, для создания плагинов или инструментов анализа), есть важное изменение: в 7.0 API нестабилен, но Microsoft предоставляет пакет совместимости, который позволяет продолжать использовать старый API до выхода версии 7.1, где он будет стабилизирован.

Технические детали и цифры производительности

Бенчмарки, проведенные командой Microsoft, показывают впечатляющие результаты. На проекте размером около 10 миллионов строк кода время полной компиляции сократилось с 60 секунд до 6 секунд — в 10 раз быстрее. Инкрементальные сборки (когда перекомпилируются только измененные файлы) также ускорились в среднем в 8 раз. Это достигается за счет параллельной обработки файлов и оптимизации алгоритмов анализа типов. Однако стоит отметить, что новый компилятор потребляет больше оперативной памяти, чем старый. В тестах на больших проектах использование памяти выросло примерно на 20%. Для большинства разработчиков это не станет проблемой, но на машинах с ограниченными ресурсами может потребоваться настройка параметров сборки.

Какие реальные проекты уже выиграли от ускорения?

Многие крупные компании и open-source проекты уже протестировали TypeScript 7.0. Например, в VS Code, который сам написан на TypeScript, время полной сборки сократилось с нескольких минут до десятков секунд. Это позволяет разработчикам быстрее получать обратную связь и ускоряет процесс разработки. В монорепозиториях, таких как те, что используются в Google или Facebook, где компиляция могла занимать до получаса, теперь она занимает считанные секунды. Особенно выиграют проекты с монорепозиториями, где компиляция часто занимала десятки минут. Теперь она занимает секунды, что позволяет быстрее получать обратную связь и сокращает время ожидания при развертывании. Для сообщества разработчиков в России и СНГ, активно использующих TypeScript (например, в таких компаниях, как Яндекс или Тинькофф), это обновление также станет значимым улучшением.

Кому нужно обновиться и как это сделать?

TypeScript 7.0 затрагивает всех, кто использует TypeScript: от разработчиков небольших библиотек до команд, работающих над огромными корпоративными приложениями. Для первых обновление пройдет практически незаметно — сборка просто станет быстрее. Для вторых это может означать значительную экономию времени в CI/CD пайплайнах и на локальных машинах разработчиков. Чтобы обновиться, достаточно установить новую версию через npm: npm install -g typescript@7.0. После этого можно проверить совместимость с вашим проектом, запустив компилятор в тестовом режиме. Если вы используете какие-либо инструменты, основанные на TypeScript API, убедитесь, что они работают с пакетом совместимости, который Microsoft выпустила для плавного перехода.

Какие риски и ограничения есть у TypeScript 7.0?

Несмотря на впечатляющие улучшения, есть несколько моментов, о которых стоит знать. Во-первых, новый компилятор потребляет больше памяти, что может быть критично для сред с ограниченными ресурсами, например, в контейнерах или на слабых CI-серверах. Во-вторых, API TypeScript в 7.0 нестабилен, поэтому если вы разрабатываете плагины или инструменты, вам придется использовать пакет совместимости до выхода 7.1. В-третьих, некоторые очень специфические edge-кейсы могут вести себя иначе, хотя Microsoft утверждает, что совместимость полная. Наконец, если вы используете очень старые версии TypeScript, переход на 7.0 может потребовать обновления других зависимостей.

Что ждет TypeScript в будущем?

Microsoft уже анонсировала планы по выпуску TypeScript 7.1, который должен стабилизировать программный API и добавить новые функции. Ожидается, что версия 7.1 выйдет в течение нескольких месяцев. Также команда продолжит оптимизацию компилятора, возможно, снизив потребление памяти. В более долгосрочной перспективе можно ожидать, что нативный компилятор станет основой для будущих версий, а также появятся новые инструменты, использующие его скорость, например, более быстрые линтеры и форматтеры. TypeScript остается полностью открытым проектом, и сообщество может вносить свой вклад в его развитие.

Итог

TypeScript 7.0 — это значительный шаг вперед для одного из самых популярных языков программирования. Десятикратное ускорение сборки — не просто маркетинговый ход, а реальное улучшение, которое почувствуют разработчики по всему миру. Если вы еще не обновились, самое время попробовать новую версию и оценить ее преимущества на своих проектах. Следите за анонсами Microsoft, чтобы не пропустить выход 7.1 с обещанным стабильным API.