TypeScript 5.6 ужесточает проверки истинности и нулевости

Выпущена версия TypeScript 5.6. В обновлении улучшена работа с проверками на истинность и нулевость, а также добавлены новые вспомогательные методы итератора.

TypeScript, супернабор JavaScript, добавляющий необязательные статические типы, которые могут проверяться компилятором TypeScript для выявления типичных ошибок в ваших программах, сейчас используется гораздо шире, чем сам JavaScript, согласно опросу разработчиков Stack Overflow и опросу State of JavaScript, см. The Ongoing State Of JavaScript. Отчасти популярность TypeScript объясняется его способностью помочь вам избежать таких ошибок, как опечатки, пропущенные аргументы или забытые проверки на null и undefined, а последняя версия еще больше улучшила ситуацию с устранением ошибок.

Первое улучшение в TypeScript 5.6 - это способ обработки проверок на истинность и nullish. Раньше допускались выражения, имеющие «статическую истинностную семантику». Такие выражения всегда оцениваются с одинаковой истинностью, и команда TypeScript говорит, что в ходе экспериментов они обнаружили, что многие ошибки можно отловить, помечая код, который всегда оценивается определенным образом, как либо всегда истинный, либо всегда нулевой. В TypeScript 5.6 компилятор теперь возвращает ошибку, если он может синтаксически определить, что проверка на истинность или нулевость всегда будет оцениваться определенным образом. Однако некоторые выражения по-прежнему разрешены, даже если они истинны или нулевые. В список допустимых выражений входят true, false, 0 и 1.

В этом выпуске также были добавлены вспомогательные методы итератора. Это улучшение добавляет методы, ранее ограниченные массивами, к большинству итераторов, которые создаются в JavaScript. Итераторы - это объекты, которые можно перебирать, вызывая [Symbol.iterator]() для получения итератора, а итераторы - это объекты, имеющие метод next(), который можно использовать для получения следующего значения по мере итерации. Команда TypeScript говорит, что разработчики используют итераторы во всевозможных местах в JavaScript, но до сих пор им не хватало методов для массивов, таких как map, filter и reduce. Этот выпуск добавляет эти и другие методы к большинству IterableIterators, которые создаются в JavaScript.

Еще одно дополнение, строгие встроенные проверки итераторов, появилось благодаря добавлению вспомогательных методов итераторов. Разработчики говорят, что с появлением нового типа IteratorObject они обнаружили некоторые трудности в обеспечении безопасной реализации IteratorObjects. Это добавило к давно существующей проблеме безопасности с IteratorResult в случаях, когда TReturn был любым, что является стандартом.

Хотя было бы сложно исправить проблему для каждого итератора без внесения большого количества поломок, команда утверждает, что они могут, по крайней мере, исправить ее для большинства создаваемых IteratorObject. В TypeScript 5.6 появился новый внутренний тип под названием BuiltinIteratorReturn и новый флаг --strict-mode под названием --strictBuiltinIteratorReturn. Когда бы ни использовались объекты IteratorObjects в таких местах, как lib.d.ts, они всегда пишутся с типом BuiltinIteratorReturn для TReturn. Это позволит получить точный и безопасный для типов тип возврата для методов next() итераторов, созданных такими встроенными модулями, как Array, Set и Map.

TypeScript 5.6 доступен уже сейчас.

TypeScript 5.6 ужесточает проверки истинности и нулевости
Понравилась новость? Тогда не забудь оставить свой комментарий.
А так же, добавь наш сайт в закладки (нажми Ctrl+D), не теряй нас.
16 сентября 2024 г.
49
Теги: TypeScript

Комментарии

Оставить комментарий:
* отправляя форму, я даю согласие на обработку персональных данных

Читайте еще

Продолжаем добавлять языки программирования для Вас.
Впереди много интересного!

Только свежие новости программирования и технологий каждый день.