TypeScript 4.9 от Microsoft, запланированное обновление популярного строго типизированного языка, основанного на JavaScript, теперь доступен в виде рабочей версии. Обновление включает в себя satisfies
оператор, который может ловить ошибки.
С satisfies
, разработчики могут проверить, соответствует ли тип выражения некоторому типу, не меняя результирующий тип выражения. Этот оператор можно использовать для обнаружения возможных ошибок, например, для проверки наличия у объекта всех ключей определенного типа, но не более того.
Также в TypeScript 4.9 in
Оператор стал более мощным при сужении типов, в которых не указано свойство. Вместо того, чтобы оставить их как есть, язык будет пересекать их типы с Record<”property-key-being-checked”, unknown>
.
TypeScript 4.9 также ужесточает проверки того, как in
используется, чтобы гарантировать, что используются действительные ключи свойств.
TypeScript 4.9, представленный 15 ноября после стадий бета-тестирования и кандидатов на выпуск, можно загрузить через NuGet или через NPM, используя следующую команду:
npm install -D typescript
Другие новые возможности и улучшения в TypeScript 4.9:
- Наблюдение за файлами по умолчанию осуществляется на основе событий файловой системы, и возвращается к опросу только в том случае, если разработчикам не удается настроить средства наблюдения на основе событий. Это должно обеспечить менее ресурсоемкую работу при запуске.
–-watch
режиме или работать с редактором на базе TypeScript, например Visual Studio Code или Visual Studio. Promise.resolve
теперь используетAwaited
type для развертывания переданных ему типов, подобных Promise. Это означает, что он чаще возвращает правильноеPromise
тип, но этот улучшенный тип может сломать существующий код, если он ожидалany
илиunknown
вместоPromise
.- TypeScript теперь ошибается при прямом сравнении со значением NaN и предлагает некоторые варианты
Number.isNAN
вместо. - TypeScript теперь поддерживает новую функцию ECMAScript, называемую автоматическими средствами доступа, которые объявляются так же, как свойства в классах, за исключением того, что они объявляются с помощью
accessor
ключевое слово. - Чтобы улучшить производительность,
forEachChild
Функция была переписана для использования поиска в таблице функций вместо оператора переключения между узлами синтаксиса. Кроме того, был оптимизирован способ сохранения TypeScript информации о типе в истинной ветви условного типа. - Чтобы оптимизировать типы замещения,
SubstitutionType
объекты больше не содержат свойства замены, представляющего эффективную замену. Вместо этого они просто содержатconstraint
свойство.
TypeScript 5.0 должен выйти в виде бета-версии 24 января 2023 года, кандидат на выпуск запланирован на 28 февраля, а производственная версия должна выйти 14 марта. TypeScript 4.8 выйдет 25 августа и принесет улучшения корректности и согласованности, а также исправления для отслеживания файлов. .
TypeScript находится на подъеме. В отчете CircleCI о состоянии поставки программного обеспечения за 2022 год говорится, что TypeScript превзошел JavaScript как самый популярный язык DevOps. В CircleCI причиной такого всплеска назвали дружелюбие к разработчикам.
Предшественник TypeScript 4.8 был выпущен 25 августа и принес улучшения корректности и согласованности, а также исправления отслеживания файлов.