Релиз TypeScript 4.5
Сегодня вышел TypeScript 4.5. Дениэл Розенвассер рассказал о всех новинках релиза.
Был добавлен новый утилитарный тип Awaited
. Этот тип моделирует разворачивание промисов с помощью await
в async-функциях и метода .then()
у промисов. Awaited
теперь используется для типизации Promise.all
, улучшая вывод типов.
С версии 4.5 встроенные типы можно обновлять отдельно от компилятора. Также теперь можно оверрайдить встроенные типы, используя пакеты @typescript/lib-*
в node_modules
.
Строковые шаблонные типы могут использоваться в качестве дискрименантов в union'ах. Эта фича будет полезна при типизации ответов API.
В условных типах появилась оптимизация хвостовой рекурсии, благодаря которой можно описывать типы, полагающиеся на большое число итераций. Например, с его помощью можно затипизировать полноценный утилитарный тип TrimLeft
.
Появилась возможность отключения удаления неиспользуемых импортов. Также в рамках этой фичи был добавлена поддержка модификатора type
для импортируемых типов: import {someFunction, type BaseType} from "./module.js";
.
Реализованы пропозалы "Ergonomic Brand Checks" и "Import assertions".
Также в этой версии должна была появиться поддержка ESM для Node.js, но она была временно удалена из-за несовместимости с экосистемой и проблем в реализации.
https://devblogs.microsoft.com/typescript/announcing-typescript-4-5/