Вышел 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 — мы продолжа