Компания Microsoft представила TypeScript 6.0 — актуальную версию языка программирования, расширяющего возможности JavaScript для разработки веб-приложений. Исходный код компилятора, преобразующего TypeScript в JavaScript, распространяется по лицензии Apache 2.0 и доступен в репозитории на GitHub, а спецификации языка открыты в рамках соглашения Open Web Foundation.
TypeScript сохраняет полную обратную совместимость с JavaScript, что упрощает адаптацию существующих проектов. Конечный продукт компилируется в стандартный JS, совместимый с современными браузерами, а также средами Node.js, Bun и Deno. Главными преимуществами языка остаются строгая статическая типизация и поддержка полноценных классов, что помогает снизить количество ошибок, повысить читаемость кода и упростить его дальнейшее сопровождение.
Переход на новый компилятор
Версия 6.0 стала последним крупным релизом, использующим текущий компилятор на базе TypeScript (транслируемый в JavaScript). Начиная с ветки 7.0, проект переходит на typescript-go (tsgo) — новый компилятор, написанный на языке Go и разрабатываемый с 2024 года. Его внедрение призвано значительно ускорить сборку, снизить потребление оперативной памяти и сократить время запуска редакторов кода, что критически важно для работы с крупными программными комплексами.
TypeScript 6.0 выступает связующим звеном, подготавливающим экосистему к переходу на архитектуру 7.x. Ветки будут сопровождаться параллельно до момента, пока новая версия не достигнет полной зрелости.
Ключевые нововведения и улучшения
- Поддержка префиксов «#/»: для импорта модулей теперь можно использовать псевдонимы внутри пакетов, избавляясь от громоздких относительных путей (например,
import * as utils from "#root/utils.js"). - Стабильная сортировка типов: добавлен флаг
--stableTypeOrdering, активирующий алгоритм детерминированной сортировки, который будет стандартом в 7-й версии. Использование рекомендовано для диагностики перед миграцией, так как этот режим может замедлить компиляцию на 25%. - Интеграция Temporal API: добавлены встроенные типы для работы с датами и временем, что позволяет гибко манипулировать временными метками с учетом часовых поясов и выполнять арифметические операции.
- Методы Map и WeakMap: появились типы для
getOrInsertиgetOrInsertComputed, упрощающие получение или создание записей в коллекциях. - Безопасность регулярных выражений: добавлена поддержка функции
RegExp.escapeдля корректного экранирования спецсимволов при работе с конструкторомRegExp().
Изменения в настройках по умолчанию
Для повышения производительности и актуальности разработки были скорректированы базовые параметры конфигурации:
- Параметр
rootDirтеперь по умолчанию ссылается на текущий каталог («.»), где находитсяtsconfig.json. - Поле
typesтеперь равно[], что исключает автоматическое подключение всех пакетов изnode_modules/@types. Это решение ускоряет компиляцию на 20–50%. - Значение
targetобновлено доes2025; версияes5признана устаревшей, минимально поддерживаемый стандарт —es6(2015). - Режим
strict(строгая проверка типов) теперь активирован по умолчанию. - Параметр
moduleвыставлен в значениеesnext, отдавая приоритет модулям ECMAScript (ESM) вместо устаревшего формата CommonJS.
В целях оптимизации производительности объявлены устаревшими опции --baseUrl, --outFile, режим --moduleResolution: classic, а также использование ключевого слова module для создания пространств имен.






