TypeScript 7.0 RC: компилятор на Go — руководство по переходу
Технический разбор

TypeScript 7.0 RC: компилятор на Go

Самый значительный релиз в истории TypeScript — полная переработка компилятора на Go с ускорением сборки до 10 раз, параллелизацией через общую память и новыми настройками конфигурации. Что это значит для ваших проектов и как мигрировать.

24 июня 2026 10 мин чтения Олег Максимов

Project Corsa: переработка на Go

18 июня 2026 года Даниэль Розенвассер (Microsoft) анонсировал TypeScript 7.0 Release Candidate — событие, к которому шли несколько лет. Впервые за всю историю TypeScript компилятор написан не на самом TypeScript, а на Go. Microsoft методично перенесла всю кодовую базу на Go в рамках проекта "Project Corsa".

Это не переписывание с нуля — логика проверки типов структурно идентична TypeScript 6.0. Каждое правило вывода, каждая проверка вариантности, каждый анализ потоков управления были аккуратно перенесены строка за строкой. Результат — компилятор, который выдаёт идентичные результаты проверки типов, но работает примерно в 10 раз быстрее.

Ускорение достигается за счёт двух архитектурных изменений:

Установка TypeScript 7.0 RC

Установка ничем не отличается от обычного npm-пакета:

npm install -D typescript@rc

Проверьте установку:

> npx tsc --version
Version 7.0.1-rc

Для поддержки в редакторе установите расширение TypeScript Native Preview для VS Code. Оно использует тот же компилятор на Go, поэтому вы получаете такую же производительность в редакторе, как и в командной строке. Расширение построено на протоколе Language Server Protocol (LSP) и совместимо с большинством современных редакторов.

Совместное использование с TypeScript 6.0

TypeScript 7.0 RC может сосуществовать с TypeScript 6.0 в одной системе. Установите его как отдельный пакет:

npm install -D typescript@rc
# Ваш tsconfig.json может ссылаться на [email protected] глобально,
# а отдельные проекты — использовать RC

Расширение VS Code работает независимо от встроенной версии TypeScript. Вы можете настроить, какие проекты используют TS 7.0, а какие остаются на 6.0, через настройки рабочей области.

Параллелизация и управление производительностью

Самое значительное архитектурное изменение в TypeScript 7.0 — настоящая многопоточная параллелизация. Старый JavaScript-компилятор был принципиально однопоточным — даже с асинхронным вводом-выводом, работа с интенсивным использованием CPU (разбор, проверка типов, генерация) выполнялась последовательно. Go-компилятор распределяет эту работу по потокам.

Параллелизация проверки типов (--checkers)

TypeScript 7.0 вводит пул параллельных рабочих процессов для проверки типов. Флаг --checkers управляет количеством рабочих потоков (по умолчанию: 4). Они работают независимо над разными файлами, а их результаты объединяются в конце — выдавая одинаковый результат независимо от порядка выполнения.

# Больше потоков для больших проектов (больше памяти, быстрее)
npx tsc --checkers 8

# Меньше для маленьких проектов (меньше накладных расходов)
npx tsc --checkers 2

Увеличение числа проверяющих значительно ускоряет большие кодовые базы, но требует больше памяти и CPU. Для небольших проектов умолчание в 4 потока может быть избыточным — уменьшение до 2 может даже ускорить сборку за счёт снижения накладных расходов на управление потоками.

Параллельная сборка проектов (--buildJobs)

Для монорепозиториев с TypeScript project references новый флаг --buildJobs включает параллельную сборку нескольких проектов одновременно. Система сборки учитывает граф зависимостей — проект не может начать сборку, пока не завершены его зависимости, но независимые проекты собираются параллельно.

# Включить параллельную сборку проектов
npx tsc --build --buildJobs 4

Однопоточный режим (--singleThreaded)

Для отладки, профилирования или окружений с ограниченными ресурсами (CI-раннеры с малым числом ядер) флаг --singleThreaded отключает всю параллелизацию:

# Принудительное однопоточное выполнение
npx tsc --singleThreaded

Улучшенный режим --watch

Система инкрементальной компиляции была перестроена на новой Go-основе. Режим --watch теперь использует:

Новые значения конфигурации по умолчанию

TypeScript 7.0 обновляет несколько давно устаревших значений по умолчанию:

Опция TS 6.x (по умолч.) TS 7.0 (по умолч.)
strict false true
module commonjs esnext
target es5 Последний стабильный ES
noUnusedSideEffectImports false true
types ["node", ...] []
stableLibOrdering false true (заблокировано)

Самое важное изменение — strict: true по умолчанию. Для существующих проектов, мигрирующих с 6.x, может потребоваться явно указать "strict": false в tsconfig.json, если у вас большая кодовая база, ещё не полностью типизированная. Новые проекты должны использовать эти настройки по умолчанию.

Обратно несовместимые изменения

Несколько устаревших опций были удалены для модернизации языка:

Удалённые целевые платформы

Удалённые форматы модулей

Удалённые возможности

Улучшение шаблонных литералов

TypeScript 7.0 улучшает обработку Unicode в шаблонных литералах. Новый компилятор сохраняет Unicode code points естественным образом — эмодзи и сложные символы обрабатываются как единые элементы, а не разбиваются на суррогатные пары:

type Emoji = '👍' | '🚀' | '💡';
type WithPrefix = `icon-${Emoji}`;
// TS 7.0 сохраняет эмодзи как единый элемент
// 'icon-👍' | 'icon-🚀' | 'icon-💡'

Стратегия миграции с TypeScript 6.x

Шаг 1: Проверьте конфигурацию

Запустите npx typescript@rc --showConfig, чтобы увидеть, какие новые значения по умолчанию будут применены. Обратите внимание на:

Шаг 2: Обновите форматы модулей

Если вы используете amd, umd или system, переходите на ESM. С node16/node22 переключайтесь на nodeNext.

Шаг 3: Протестируйте с RC

Установите typescript@rc параллельно с текущей версией и запустите CI. Семантика проверки типов идентична, поэтому новые ошибки будут только от изменений по умолчанию.

npm install -D typescript@rc
npx tsc --noEmit  # Проверка ошибок конфигурации

Шаг 4: Настройте параллелизацию

После того как RC проходит все проверки, поэкспериментируйте с флагами --checkers и --buildJobs для оптимальной производительности.

FAQ

Что такое TypeScript 7.0 и чем он отличается от предыдущих версий?
TypeScript 7.0 — первый релиз, построенный на полностью новом компиляторе на Go (Project Corsa) вместо TypeScript-в-JavaScript. Нативная переработка даёт примерно 10-кратное ускорение сборки. Логика проверки типов структурно идентична TypeScript 6.0 — та же семантика, но значительно быстрее.
Как установить TypeScript 7.0 RC?
Установка через npm: npm install -D typescript@rc. Проверьте: npx tsc --version (должно быть Version 7.0.1-rc). Для VS Code установите расширение TypeScript Native Preview.
Можно ли использовать TypeScript 7.0 одновременно с TypeScript 6.0?
Да. Установите typescript@rc как отдельный пакет — это не повлияет на существующую TypeScript 6.0. Расширение VS Code также работает независимо от встроенной версии, позволяя переключаться между версиями для разных проектов.
Какие новые опции конфигурации появились в TypeScript 7.0?
Три основных новых флага: --checkers (по умолчанию 4) — количество параллельных потоков проверки типов; --buildJobs — параллельная сборка проектов в монорепозиториях; --singleThreaded — отключение параллелизации. Новые значения по умолчанию: strict: true, module: esnext, types: [].
Какие обратно несовместимые изменения в TypeScript 7.0?
Удалены es3, amd/umd/system, node16/node22, downlevelIteration, jsx:preserve/react. @enum JSDoc больше не распознаётся. Атрибуты импорта требуют ключевого слова type. Эти изменения затрагивают в основном устаревшие конфигурации — большинству современных проектов не потребуется значительных изменений.
Насколько быстрее работает компилятор на Go на практике?
Microsoft сообщает об ускорении примерно в 10 раз. Ранние пользователи — Bloomberg, Canva, Figma, Google, Linear, Miro, Notion, Slack, Vercel — подтвердили такое же ускорение на кодовых базах с миллионами строк. Улучшение достигается за счёт нативного выполнения Go и параллелизации через общую память.
Достаточно ли стабилен TypeScript 7.0 RC для production?
RC прошёл валидацию на десятилетнем наборе тестов и уже используется в кодовых базах с миллионами строк в Microsoft и компаниях-партнёрах. Поскольку это методичный перенос с идентичной логикой проверки типов, совместимость крайне высокая. Microsoft рекомендует попробовать его в ежедневных рабочих процессах и CI. Финальный стабильный релиз ожидается вскоре.

Нужен специалист по TypeScript?

TypeScript 7.0 — самый значительный релиз в истории языка, и миграция конфигурации вашего проекта требует тщательного планирования. Если вашей команде нужна помощь с обновлением — или вы создаёте новый проект и хотите начать правильно — свяжитесь со мной.

Я — full-stack веб-разработчик с глубоким опытом в TypeScript, Node.js, React и современной JavaScript-экосистеме. Живу в Минске и работаю по всему миру. Обсудим ваш проект.

Контакты

Обсудим ваш проект

Планируете проект на TypeScript или нужна помощь с миграцией на TypeScript 7.0? Расскажите о проекте — я дам предварительную оценку. Бесплатно.