Услуги Портфолио Контакты БлогНовости +7 (800) 511‑32‑27 Обсудить проект
Облако

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

26 октября 2026·5 мин чтения
TypeScript 7.1Frontend-разработка
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, что тоже может дать новые ошибки в существующем коде.

Что делать командам сейчас

  1. Поставьте бету в отдельную ветку: npm install -D typescript@beta — и прогоните проверку типов в CI.
  2. Сверьте время сборки и пик памяти с 7.0 или 6.x — на больших монорепозиториях выигрыш заметен сразу.
  3. Для Vue, Svelte, Astro — следите за релизами мапперов от авторов фреймворков; до стабильного 7.1 держите продакшен на проверенной версии.
  4. Разберите новые ошибки распределяющих условных типов и DOM-типов до выхода RC.
  5. Не выкатывайте бету в релизную сборку — API ещё может меняться до RC.

Часто задаваемые вопросы

Когда выйдет стабильный TypeScript 7.1? По плану итерации — RC 10 ноября и стабильный релиз 24 ноября 2026 года.

Нужно ли переходить с TypeScript 6.x? Для проектов на Vue, Svelte и Astro 7.1 — первая версия, где переход становится реальным. Начните с теста беты в CI.

Что такое content mapper? Плагин, который показывает компилятору TypeScript-часть файла нестандартного формата и сохраняет карту соответствия с исходником.

Источники

Материал подготовлен редакцией YuSMP Group по открытым источникам. Нужна экспертиза по теме или разработка под задачу — обсудим проект.

Фронтенд застрял на TypeScript 6.x? Подготовим переход на 7.1

Проверим совместимость Vue, Svelte или React-проекта, обновим линтеры и CI, разберём новые ошибки типов и ускорим сборку без остановки релизов.

Обсудить frontend-разработку