Самый значительный релиз в истории TypeScript — полная переработка компилятора на Go с ускорением сборки до 10 раз, параллелизацией через общую память и новыми настройками конфигурации. Что это значит для ваших проектов и как мигрировать.
18 июня 2026 года Даниэль Розенвассер (Microsoft) анонсировал TypeScript 7.0 Release Candidate — событие, к которому шли несколько лет. Впервые за всю историю TypeScript компилятор написан не на самом TypeScript, а на Go. Microsoft методично перенесла всю кодовую базу на Go в рамках проекта "Project Corsa".
Это не переписывание с нуля — логика проверки типов структурно идентична TypeScript 6.0. Каждое правило вывода, каждая проверка вариантности, каждый анализ потоков управления были аккуратно перенесены строка за строкой. Результат — компилятор, который выдаёт идентичные результаты проверки типов, но работает примерно в 10 раз быстрее.
Ускорение достигается за счёт двух архитектурных изменений:
Установка ничем не отличается от обычного 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 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, если у вас большая кодовая база,
ещё не полностью типизированная. Новые проекты должны использовать эти настройки по умолчанию.
Несколько устаревших опций были удалены для модернизации языка:
es3 — больше не поддерживаетсяamd, umd, system — используйте ESM или bundlernode16, node22 — используйте nodeNext или bundlerdownlevelIteration — удалёнjsx: preserve и jsx: react — заменены на jsx: react-jsx@enum JSDoc — больше не распознаётсяasserts запрещён в телах namespaceTypeScript 7.0 улучшает обработку Unicode в шаблонных литералах. Новый компилятор сохраняет Unicode code points естественным образом — эмодзи и сложные символы обрабатываются как единые элементы, а не разбиваются на суррогатные пары:
type Emoji = '👍' | '🚀' | '💡';
type WithPrefix = `icon-${Emoji}`;
// TS 7.0 сохраняет эмодзи как единый элемент
// 'icon-👍' | 'icon-🚀' | 'icon-💡'
Запустите npx typescript@rc --showConfig, чтобы увидеть, какие новые значения по умолчанию будут
применены. Обратите внимание на:
strict: true — если вы полагались на strict: false, явно верните егоnoUnusedSideEffectImports: true — может вызвать ошибки при импортах для побочных эффектовmodule: esnext — проверьте, что ваш сборщик поддерживает ESMtypes: [] — явно укажите нужные пакеты типов
Если вы используете amd, umd или system, переходите на ESM.
С node16/node22 переключайтесь на nodeNext.
Установите typescript@rc параллельно с текущей версией и запустите CI. Семантика проверки типов
идентична, поэтому новые ошибки будут только от изменений по умолчанию.
npm install -D typescript@rc
npx tsc --noEmit # Проверка ошибок конфигурации
После того как RC проходит все проверки, поэкспериментируйте с флагами --checkers и
--buildJobs для оптимальной производительности.
npm install -D typescript@rc. Проверьте: npx tsc --version (должно быть Version 7.0.1-rc). Для VS Code установите расширение TypeScript Native Preview.TypeScript 7.0 — самый значительный релиз в истории языка, и миграция конфигурации вашего проекта требует тщательного планирования. Если вашей команде нужна помощь с обновлением — или вы создаёте новый проект и хотите начать правильно — свяжитесь со мной.
Я — full-stack веб-разработчик с глубоким опытом в TypeScript, Node.js, React и современной JavaScript-экосистеме. Живу в Минске и работаю по всему миру. Обсудим ваш проект.
Планируете проект на TypeScript или нужна помощь с миграцией на TypeScript 7.0? Расскажите о проекте — я дам предварительную оценку. Бесплатно.