Вышел TypeScript 5.0: что нужно знать разработчику
Команда TypeScript представила релиз версии 5.0 — первый крупный апдейт в новой системе нумерации. Вместо привычных 4.х разработчики решили перейти к 5.0, подчеркнув масштаб внутренних изменений. Новинка принесла несколько долгожданных фич, а также существенно ускорила работу компилятора. Разберём главные изменения, которые стоит внедрить в свои проекты уже сегодня.
Ключевые нововведения TypeScript 5.0
- Декораторы (ECMAScript-совместимые) — теперь TypeScript поддерживает стандартные декораторы, соответствующие предложению TC39. Старые экспериментальные декораторы остаются для обратной совместимости, но новым проектам рекомендуется переходить на новый синтаксис.
- const type parameters — появилась возможность объявлять дженерики с модификатором
const. Это позволяет точнее выводить типы литералов, особенно при работе с массивами и кортежами. Например,const tuple = <const T,>(...args: T) => argsсохранит точную длину кортежа. - Улучшение производительности — TypeScript 5.0 стал быстрее за счёт оптимизации внутренних структур данных и уменьшения нагрузки на сборщик мусора. В некоторых проектах скорость сборки выросла на 10-25%.
- Поддержка нескольких конфигураций в одном проекте — теперь можно указывать несколько
tsconfig.jsonв секцииreferencesбез дублирования настроек. Это упрощает монорепозитории и микросервисные архитектуры. - Улучшенная работа с enums — все enum-значения теперь являются объединениями литеральных типов. Это улучшает проверку типов и автодополнение в редакторах кода.
- JSDoc imports — в файлах JavaScript, использующих
@typeи@param, теперь можно импортировать типы из других файлов черезimport('./types').SomeType. Это делает JSDoc-типизацию значительно более мощной.
Что изменилось в синтаксисе и совместимости
Релиз TypeScript 5.0 не содержит ломающих изменений для кода, написанного на TypeScript 4.9. Однако стоит обратить внимание на несколько моментов:
- Удалена поддержка старой системы декораторов (если вы не используете экспериментальный флаг
experimentalDecorators). - Файлы с расширением
.tsтеперь могут содержать экспорт по умолчанию для асинхронных функций без дополнительных обёрток. - Улучшена интеграция с Node.js ESM — TypeScript 5.0 корректно обрабатывает
.mtsи.ctsрасширения.
Как обновиться до TypeScript 5.0
Обновление не требует серьёзных усилий. Достаточно выполнить в терминале:
npm install typescript@latest --save-dev
После установки рекомендуется проверить проект на наличие ошибок с помощью команды tsc --noEmit. Если вы используете старые декораторы, добавьте в tsconfig.json флаг "experimentalDecorators": true для сохранения совместимости.
Заключение
TypeScript 5.0 — это значительный шаг вперёд для экосистемы. Новые декораторы, const type parameters и улучшенная производительность делают его одним из самых важ