TypeScript 7.1 Beta: у компилятора на Go появился публичный API

20 октября 2026 года Microsoft выпустила TypeScript 7.1 Beta. Это первое крупное обновление после TypeScript 7.0 — версии, в которой компилятор переписали с JavaScript на Go и ускорили примерно в 10 раз. Главное в 7.1 — публичный программный API и «мапперы содержимого» для файлов .vue, .svelte и .mdx. Именно их ждали линтеры и инструменты фреймворков, чтобы перейти на быстрый компилятор. Новость касается всех проектов на TypeScript, а это большинство современных фронтендов и Node.js-бэкендов.
Что было в TypeScript 7.0
TypeScript 7.0 вышел 8 июля 2026 года. По данным InfoQ, полная сборка VS Code заняла 10,6 секунды вместо 125,7 секунды на TypeScript 6 — ускорение в 11,9 раза. Slack сообщил о сокращении проверки типов в CI примерно с 7,5 до 1,25 минуты.
Но у 7.0 было ограничение: стабильного программного API не было. Поэтому typescript-eslint и инструменты для Vue, Svelte, Astro, MDX и Angular не могли работать с новым компилятором. Многие команды оставались на TypeScript 6 или держали обе версии рядом через пакет `@typescript/typescript6`.
Что нового в 7.1 Beta
- Публичный API. Он разделён на точки входа: `typescript/sync`, `typescript/async`, `typescript/fs`, `typescript/ast` и другие. Поддерживает снимки, которые можно обновлять по частям, виртуальные файловые системы и объекты Disposable для конструкции `using`.
- Мапперы содержимого. Плагины, которые дают TypeScript виртуальное представление файлов .vue, .svelte или .mdx. Подключаются в `tsconfig.json` и требуют флага `--runExternalCode`.
- Атрибуты импорта в объявлениях модулей. Можно описать модули вида `declare module "*" with { type: "css" }`.
- Импорты фазы исходника. `import source` для WebAssembly-модулей.
- Цель ES2026. `--target es2026` и `--lib es2026` стали стабильными: в библиотеке типов есть `Math.sumPrecise()`, `Array.fromAsync()`, методы hex и base64 у Uint8Array.
| Кодовая база | Ускорение | Снижение памяти |
|---|---|---|
| bluesky | 1,2× | 15,8% |
| mui-docs | 1,9× | 49,6% |
| sentry | 1,3× | 20,8% |
| t3code-server | 1,4× | 24,6% |
| vscode | 1,2× | 17,2% |

Что может сломаться
Microsoft предупреждает о двух изменениях:
- типы DOM теперь генерируются, и это может повлиять на проверку типов в браузерном коде;
- дистрибутивные условные типы проверяются строже: некоторые существующие ограничения начнут давать ошибки.
При переходе с 6.x на 7.x действует и то, что было в 7.0: устаревшие в 6.0 опции стали ошибками, а `strict` и `esnext` включены по умолчанию.
Сроки
Команда обещает релиз-кандидат примерно через месяц и финальную версию вскоре после него. Ориентир — конец ноября или декабрь 2026 года, но это план, а не обещание даты.
Кого касается
- проектов на Vue, Svelte, Astro, Angular и MDX, которые не могли перейти на 7.0;
- команд с typescript-eslint в CI;
- больших монорепозиториев, где проверка типов занимает минуты;
- авторов инструментов, которые используют API компилятора.
Что делать
- Если вы на TypeScript 5.x — сначала перейдите на 6.0: Microsoft советует этот промежуточный шаг.
- Если вы на 6.0 — попробуйте 7.0 на CI в отдельной ветке и замерьте время сборки.
- Если 7.0 не подошла из-за линтера или фреймворка — проверьте 7.1 Beta: `npm install -D typescript@beta`.
- Не ставьте бету в продакшен-сборку: используйте её для проверки совместимости.
- Следите за поддержкой 7.1 у typescript-eslint и плагинов вашего фреймворка.
Как замерить выигрыш на своём проекте
Замер занимает час, и его стоит сделать до решения о переходе.
- Запишите текущее время проверки типов в CI и локально: `tsc --noEmit` с замером времени.
- В отдельной ветке поставьте TypeScript 7.0 (или 7.1 Beta для проектов с Vue и Svelte) и повторите замер.
- Посмотрите, сколько ошибок выдал новый компилятор. Если их десятки — это последствия строгого режима по умолчанию и удалённых опций, их исправление и есть основная работа по переходу.
- Проверьте потребление памяти: в 7.1 Beta оно снизилось на 15–50% на тестовых проектах Microsoft, это важно для небольших CI-машин.
- Для ограниченных сред есть флаг `--singleThreaded`, а параллелизм настраивается флагами `--checkers` и `--builders`.
Если выигрыш — секунды, переход можно отложить до планового обновления. Если минуты на каждую сборку — он окупится быстро.
Что это даёт бизнесу
Для заказчика выгода не в новых функциях языка, а во времени. Если проверка типов в CI идёт 7 минут, а станет 1–2 минуты, каждая правка быстрее проходит путь до сайта. Для команды из нескольких разработчиков это часы в неделю. Плюс редактор кода быстрее подсказывает ошибки, и их меньше доходит до тестов.
Наше мнение
Мы считаем переход на TypeScript 7 одной из немногих «бесплатных» оптимизаций разработки: код почти не меняется, а скорость растёт кратно. Но спешить с бетой не стоит. Что мы советуем клиентам: сейчас — довести проекты до TypeScript 6.0, если они ещё на 5.x; после финального 7.1 — переходить, начиная с CI.
Материалы для проверки
Если нужна реализация
Состав работ зависит от текущего проекта и подтверждённой причины. Можно обсудить диагностику или разработку подходящего решения.
Вопросы и ответы
Что нового в TypeScript 7.1 Beta?
Публичный API компилятора на Go, плагины для файлов .vue, .svelte и .mdx, стабильная цель ES2026, импорты с атрибутами в объявлениях модулей и импорты фазы исходника.
Насколько TypeScript 7 быстрее?
По данным Microsoft и InfoQ, полная сборка ускоряется в 8–12 раз по сравнению с TypeScript 6. В 7.1 Beta добавилось ещё 1,2–1,9 раза к 7.0 на тестовых проектах.
Когда выйдет финальный TypeScript 7.1?
Microsoft планирует релиз-кандидат примерно через месяц после беты от 20 октября и финальную версию вскоре после него.
Почему проект на Vue не перешёл на TypeScript 7.0?
В 7.0 не было стабильного программного API, на который опираются инструменты Vue и typescript-eslint. Он появился в 7.1.
Можно ли держать TypeScript 6 и 7 одновременно?
Да. Пакет @typescript/typescript6 даёт команду tsc6 и API версии 6.0, его подключают через псевдонимы npm.
Сломается ли код при переходе?
Устаревшие в 6.0 опции стали ошибками, strict включён по умолчанию, а в 7.1 строже проверяются дистрибутивные условные типы. Поэтому сначала переходите на 6.0 и исправляйте предупреждения.