Microsoft выпустила TypeScript 7.0 — первый стабильный релиз новой ветки компилятора, переписанной на Go. Это самый крупный технический сдвиг в проекте за последние годы: TypeScript больше не ограничивается старой кодовой базой на JavaScript, а получает нативный исполняемый файл, многопоточную обработку и заметно меньшие задержки в больших проектах.
Релиз вышел 8 июля 2026 года. Команда TypeScript пишет, что новая версия обычно ускоряет полные сборки в 8–12 раз, а в отдельных сценариях при ручной настройке числа потоков — ещё сильнее. Установить TypeScript 7 можно обычной командой через npm: npm install -D typescript. После этого в проекте появляется новый tsc, который запускается так же, как прежний компилятор.
Главное изменение — перенос компилятора и инструментов TypeScript на Go. Microsoft подчеркивает, что команда переносила существующую структуру и логику максимально близко к прежней реализации, чтобы сохранить совместимость результатов между двумя компиляторами.
Проще говоря, TypeScript 7 должен проверять типы так же, как TypeScript 6.0, но делать это быстрее. Ускорение появилось за счет нативного кода, общей памяти между потоками и новой внутренней оптимизации. В старой ветке TypeScript компилировался в JavaScript и работал поверх Node.js. В новой ветке ключевые части инструментария собраны как нативная программа на Go, поэтому компилятор лучше использует процессор и параллельную обработку.
Для разработчиков это означает меньше ожидания в трех местах: при запуске tsc, при работе режима наблюдения --watch и при отклике редактора. TypeScript давно отвечает не только за сборку, но и за подсказки, переход к определению, поиск всех использований, диагностику и подсветку ошибок. Ускорение компилятора напрямую влияет на ощущение от работы в редакторе, особенно в монорепозиториях и крупных фронтенд-проектах.
Microsoft приводит замеры на крупных открытых кодовых базах. В проекте VS Code полная проверка TypeScript 6 занимала 125,7 секунды, а TypeScript 7 справился за 10,6 секунды — ускорение в 11,9 раза. В Sentry время снизилось со 139,8 до 15,7 секунды, в Bluesky — с 24,3 до 2,8 секунды, в Playwright — с 12,8 до 1,47 секунды, в tldraw — с 11,2 до 1,46 секунды.
Память тоже расходуется экономнее, хотя выигрыш зависит от проекта. В тех же тестах VS Code потреблял 4,2 ГБ вместо 5,2 ГБ, Bluesky — 1,3 ГБ вместо 1,8 ГБ, Playwright — 0,9 ГБ вместо 1,0 ГБ. Разброс по примерам — от минус 6% до минус 26% совокупного потребления памяти за время сборки.
Есть заметный прирост и в редакторе. На кодовой базе VS Code открытие файла с ошибкой раньше занимало около 17,5 секунды до появления первой диагностики, а в TypeScript 7 — меньше 1,3 секунды. Это больше чем 13-кратная разница в сценарии.
Microsoft пишет, что TypeScript 7 тестировали внутри компании и в больших внешних командах. Среди участников проверки названы Bloomberg, Canva, Figma, Google, Linear, Miro, Notion, Sentry, Slack, Vercel и другие. В релизной заметке также приведены примеры: в Slack переход на новую ветку сократил часть времени очереди слияний и снизил проверку типов в CI примерно с 7,5 до 1,25 минуты, а команда Microsoft News Services оценила экономию ожидания CI-сборок в 400 часов в месяц.
Для небольших проектов разница тоже будет видна, но главный эффект получают большие репозитории. TypeScript 7 умеет распараллеливать разбор файлов, проверку типов и генерацию вывода. В больших кодовых базах таких независимых участков больше, поэтому новая архитектура лучше раскрывается на многоядерных машинах.
TypeScript 7 вводит экспериментальные параметры --checkers и --builders. Первый управляет числом рабочих потоков для проверки типов, второй — числом параллельных сборщиков для проектных ссылок. По умолчанию TypeScript использует четыре проверяющих потока, но в крупных проектах и на мощных машинах число можно увеличить. В тестах Microsoft вариант с --checkers 8 ускорял VS Code до 7,51 секунды против 125,7 секунды у TypeScript 6.
Но увеличение --checkers может поднять расход памяти, а сочетание --checkers и --builders способно быстро перегрузить слабый CI-раннер. Для отладки и ограниченных сред появился флаг --singleThreaded, который отключает параллельную работу и заставляет компилятор идти в один поток.
Режим --watch тоже пересобрали. Теперь он использует новую основу для отслеживания файлов, основанную на опыте Parcel watcher. Это нужно для стабильной работы на разных операционных системах без тяжелого постоянного опроса файловой системы, который становится дорогим в больших проектах с огромным node_modules.
Самый заметный минус релиза — отсутствие программного API в TypeScript 7.0. Это интерфейс, через который сторонние инструменты обращаются к компилятору: анализаторы кода, линтеры, плагины, сборщики, генераторы типов и внутренние утилиты. Microsoft ожидает новый API в TypeScript 7.1, но в 7.0 его еще нет.
Из-за этого часть экосистемы останется на TypeScript 6.0 или будет запускать две версии рядом. Для переходного периода Microsoft выпустила пакет @typescript/typescript6. Он дает исполняемый файл tsc6 и повторно экспортирует API TypeScript 6.0, чтобы инструменты вроде typescript-eslint могли продолжать работать со старым интерфейсом, а проект при этом использовал новый tsc из TypeScript 7.
На GitHub в репозитории microsoft/typescript-go статус API по-прежнему обозначен как «не готов». Там же указано, что многие ключевые части уже реализованы: создание программы, разбор и сканирование, чтение tsconfig.json, разрешение типов, проверка типов, JSX, генерация JavaScript, сборка по проектным ссылкам и инкрементальная сборка. Языковой сервис через протокол Language Server Protocol находится в работе.
TypeScript 7 рассчитан на совместимость с TypeScript 6.0 по проверке типов и поведению командной строки, но это не означает бесшовный переход с веток 5.x. Релиз наследует новые значения по умолчанию из TypeScript 6.0 и превращает часть устаревших настроек в жесткие ошибки.
Среди заметных изменений: strict теперь включен по умолчанию, module по умолчанию равен esnext, types по умолчанию становится пустым массивом, rootDir теперь указывает на корень проекта. Также больше не поддерживаются target: es5, moduleResolution: classic, старый node/node10 для разрешения модулей, module: amd, umd, systemjs, none, отключение esModuleInterop и allowSyntheticDefaultImports, а baseUrl предлагается заменить относительными путями в paths.
До стабильного релиза многие пробовали нативный компилятор через пакет @typescript/native-preview. Microsoft пишет, что этот пакет набрал больше 8,5 млн загрузок в неделю, но дальше ночные сборки вернутся в стандартный пакет typescript с меткой next. Для свежих экспериментальных версий будет достаточно npm install -D typescript@next.
Есть новость? Станьте автором.
Мы сотрудничаем с независимыми исследователями и специалистами по кибербезопасности. Отправьте нам новость или предложите статью на рассмотрение редакции.
Читайте также
AMD вернёт шифрование памяти в Ryzen 9000: пользователи заметили тихое отключение защиты и подняли шум
Браузеры готовят замену CAPTCHA: Cloudflare, Mozilla, Chrome и Edge хотят проверять трафик приватными токенами