TypeScript 7.1 Beta: Go-компилятор получил API, а Vue, Svelte и Astro — путь на «семёрку»

20 октября 2026 года Microsoft выпустила TypeScript 7.1 Beta — первое крупное обновление нативного компилятора на Go. В нём появился программный API, механизм content mappers для файлов .vue, .svelte, .astro и MDX, стабильная цель es2026 и ускорение проверки типов до 1,9 раза. Финальный релиз запланирован на 24 ноября.
Для проектов на Vue, Svelte и Astro это ключевая новость года: именно отсутствие API мешало их языковым сервисам и линтерам работать поверх «семёрки». Если вы ведёте frontend-разработку на TypeScript или поддерживаете веб-приложение на современном JS-стеке, 7.1 — момент спланировать переход с 6.x.
Бета вышла на две недели позже графика: в плане итерации на GitHub она стояла на 6 октября. Менеджер проекта Дэниел Розенвассер объяснил перенос тем, что команде нужно больше времени на тестирование API, чтобы после беты не пришлось его переделывать.
Что нового в TypeScript 7.1 Beta
- Программный API компилятора. Новые точки входа
typescript/syncиtypescript/async, отдельные модули для файловой системы (typescript/fs) и AST (typescript/ast,typescript/ast/is,typescript/ast/factory). Состояние программы описывается снимками (snapshots), а объекты API нужно явно освобождать — черезusingили.dispose(). - Content mappers. Плагины, которые превращают файл нестандартного формата в виртуальное TypeScript-представление с картой соответствия строк. Ошибки и подсказки указывают на нужное место в исходном .vue или .svelte. Подключаются в
tsconfig.jsonчерез полеcontentMappers, в CLI нужен флаг--runExternalCode. - Стабильная цель
--target es2026. В типы вошлиMath.sumPrecise(),Iterator.concat(),JSON.rawJSON(),Error.isError(),Map.prototype.getOrInsert(),Array.fromAsync()и методы Base64/Hex уUint8Array. - Source phase imports. Синтаксис
import sourceпозволяет получить модуль, например WebAssembly, до его выполнения — удобно для ручной инициализации WASM. - Import attributes в ambient-модулях. Теперь можно типизировать импорты вида
with { type: "css" }через объявленияdeclare module.
Насколько быстрее стала проверка типов
Microsoft опубликовала замеры на реальных репозиториях (4 потока проверки, режим --noEmit) в сравнении с TypeScript 7.0:
- mui-docs — с 22,2 до 11,9 с (в 1,9 раза), потребление памяти — с 8093 до 4079 МиБ;
- t3code-server — с 26,5 до 19,1 с (в 1,4 раза);
- sentry — с 19,6 до 15,1 с (в 1,3 раза), память — минус 20,8%;
- vscode — с 21,6 до 17,7 с, bluesky — с 4,48 до 3,89 с (около 1,2 раза).
Ускорение дали более быстрое построение union-типов, короткие пути при сужении типов, перестройка AST и кэшей проверяющего модуля.
Почему content mappers важнее, чем кажется
TypeScript 7.0 переписали на Go ради скорости, но вместе со старым JavaScript-компилятором исчезла привычная точка расширения, на которой держалась экосистема однофайловых компонентов. Content mappers делают модель Volar «гражданином первого класса»: Microsoft уже собрала прототипы для Astro, CSS Modules, Ember, MDX, Svelte и Vue. В VS Code такие плагины запускаются только в доверенном рабочем пространстве и управляются настройкой js/ts.contentMappers.enabled — это стоит учесть в политике безопасности команды, ведь маппер исполняет сторонний код.
Что может сломаться
Проверка распределяющих условных типов стала строже: конструкции, где параметр типа ограничен другим параметром и используется внутри условного типа, теперь могут давать ошибку «does not satisfy constraint». Также обновлены DOM-типы в lib.d.ts, что тоже может дать новые ошибки в существующем коде.
Что делать командам сейчас
- Поставьте бету в отдельную ветку:
npm install -D typescript@beta— и прогоните проверку типов в CI. - Сверьте время сборки и пик памяти с 7.0 или 6.x — на больших монорепозиториях выигрыш заметен сразу.
- Для Vue, Svelte, Astro — следите за релизами мапперов от авторов фреймворков; до стабильного 7.1 держите продакшен на проверенной версии.
- Разберите новые ошибки распределяющих условных типов и DOM-типов до выхода RC.
- Не выкатывайте бету в релизную сборку — API ещё может меняться до RC.
Часто задаваемые вопросы
Когда выйдет стабильный TypeScript 7.1? По плану итерации — RC 10 ноября и стабильный релиз 24 ноября 2026 года.
Нужно ли переходить с TypeScript 6.x? Для проектов на Vue, Svelte и Astro 7.1 — первая версия, где переход становится реальным. Начните с теста беты в CI.
Что такое content mapper? Плагин, который показывает компилятору TypeScript-часть файла нестандартного формата и сохраняет карту соответствия с исходником.
Источники
- Microsoft TypeScript Blog — Announcing TypeScript 7.1 Beta, 20 октября 2026 (первоисточник).
- GitHub microsoft/TypeScript — TypeScript 7.1 Iteration Plan, график beta/RC/stable.
- Visual Studio Magazine — TypeScript 7.1 Beta Improves Support for Embedded Code, Import Attributes, 23 октября 2026.
Фронтенд застрял на TypeScript 6.x? Подготовим переход на 7.1
Проверим совместимость Vue, Svelte или React-проекта, обновим линтеры и CI, разберём новые ошибки типов и ускорим сборку без остановки релизов.