Вышел TypeScript 5.7: новые возможности, улучшения производительности и типизации

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Вышел TypeScript 5.7: что изменилось и почему это важно

Команда Microsoft официально представила TypeScript 5.7 — очередное крупное обновление популярного языка программирования с типизацией. Новый релиз включает десятки исправлений, оптимизаций и долгожданных возможностей, которые упрощают разработку и делают код ещё безопаснее. Разберём главные изменения.

Улучшенная проверка ветвей с never

Одно из ключевых нововведений — более умный анализ недостижимых ветвей. Ранее TypeScript не всегда корректно определял, что код после вызова функции с возвращаемым типом never не выполняется. Теперь компилятор точнее отслеживает такие случаи, что снижает количество ложных ошибок и позволяет писать более чистые конструкции:

  • Исключаются неверные предупреждения о «недостижимом коде».
  • Улучшена работа с исключениями и бесконечными циклами.
  • Более корректное поведение при использовании assertNever.

Новая цель компиляции: --target ESNext

Добавлена поддержка флага --target ESNext. Теперь вы можете компилировать код под самую свежую версию ECMAScript без необходимости указывать конкретный номер (например, ES2023). Это особенно удобно в проектах, где важна совместимость с последними возможностями движков JavaScript. Планируется, что ESNext будет автоматически обновляться с каждым новым релизом TypeScript.

Утилитарные типы: улучшения и новые возможности

В TypeScript 5.7 расширены встроенные утилиты для работы с типами:

  • NoInfer — новый псевдоним, который запрещает TypeScript автоматически выводить тип из переданного аргумента. Помогает избежать неожиданных сужений при перегрузках.
  • Улучшена работа Omit и Pick с условными типами и маппингом.
  • Добавлена более строгая проверка для readonly массивов в контексте spread-оператора.

Оптимизация производительности компилятора

Разработчики провели серьёзную работу над скоростью инкрементальной компиляции. По заявлению команды, время сборки в крупных монорепозиториях (например, с тысячами файлов) сократилось на 10–15%. Это стало возможным благодаря:

  • Кэшированию результатов проверки типов для неизменённых модулей.
  • Улучшенному алгоритму разрешения путей (module resolution).
  • Оптимизации работы с условными типами.

Упрощение работы с JSDoc и обновления редактора

TypeScript 5.7 лучше понимает аннотации из JSDoc — теперь поддерживаются более сложные шаблоны и типы-объединения. В редакторах (VS Code, WebStorm) улучшено автодополнение для конфигурационных файлов tsconfig.json: подсказки стали точнее, а описание каждого поля — подробнее.

Прочие исправления и заключение

В релиз также вошли исправления десятков багов, связанных с работой декораторов, модулей и пересечением типов. Обновление доступно через npm:

npm install -D typescript@5.7

TypeScript 5.7 — это сбалансированный релиз, который делает разработку комфортнее без радикальной ломки обратной совместимости. Если вы используете строгую типизацию в своих проектах, рекомендуем обновиться в ближайшее время.

Следите за новостями на PythonLib — мы продолжа

Рекомендуем библотеки