Программирование3 мин на чтение

В TypeScript 5.3 появилась поддержка атрибутов импорта

В TypeScript 5.3 появилась поддержка атрибутов импорта

TypeScript 5.3, обновление строго типизированного варианта JavaScript от Microsoft, которое добавляет поддержку атрибутов импорта для модулей ECMAScript, теперь доступно для использования.

TypeScript 5.3 также предлагает функции, включающие стабильную поддержку режима разрешения в типах импорта, а также интерактивные подсказки для типов. Анонсированный 20 ноября, финальная версия доступна через NuGet или NPM. Команда для NPM:

npm install -D typescript

TypeScript 5.3 поддерживает последние обновления предложения атрибутов импорта ECMA. Предложение ECMA вводит встроенный синтаксис для операторов импорта модуля для передачи информации вместе со спецификатором модуля. Эти атрибуты будут поддерживать дополнительные типы модулей обычным способом в средах JavaScript, начиная с модулей JSON.

Microsoft заявила, что одним из случаев использования атрибутов импорта является предоставление информации о предполагаемом формате модуля во время выполнения. В приведенном примере Microsoft сказала, что содержимое атрибутов не проверяется TypeScript, потому что они специфичны для хоста и оставлены без изменений, чтобы браузеры и среды выполнения могли их обрабатывать.

Атрибуты импорта являются продолжением ранее предложенных утверждений импорта, которые были реализованы в TypeScript 4.5 в ноябре 2021 года. Самое очевидное отличие заключается в использовании ключевого слова with вместо ключевого слова assert. Менее заметное отличие заключается в том, что теперь среды выполнения могут использовать атрибуты для направления разрешения и интерпретации путей импорта, в то время как утверждения импорта могли только утверждать некоторые характеристики после загрузки модуля. Планы предусматривают отказ от старого синтаксиса утверждений импорта в пользу предлагаемого стандарта атрибутов импорта.

TypeScript 5.3 также добавляет опцию предпочтения автоматического импорта только типов, если это возможно. Ранее, когда TypeScript создавал автоматические импорты для чего-либо в позиции типа, он добавлял модификатор типа на основе настроек разработчика. С недавним изменением, TypeScript теперь позволяет задать опцию, специфичную для редактора.

Официальный выпуск следует за бета-версией, опубликованной 3 октября, и версией-кандидатом, опубликованной 3 ноября. Предшественник TypeScript 5.2 был выпущен 24 августа.

Другие новые функции и улучшения в TypeScript 5.3:

  • TypeScript 5.3 поддерживает атрибут resolution-mode для импорта типа.
  • Уточнение может выполняться на основе условий в каждой части case в операторе switch (true).
  • TypeScript 5.3 более тщательно анализирует доступы к свойствам родительского класса и вызовы методов, чтобы узнать, соответствуют ли они полям класса. Если да, это приведет к ошибке проверки типов.
  • Подсказки по вставкам TypeScript теперь поддерживают переход к определению типов, что упрощает навигацию по коду.
  • При запуске TypeScript через tsc, компилятор будет избегать анализа JSDoc, что позволит снизить время парсинга и использования памяти для хранения комментариев, а также время, затраченное на сборку мусора.
  • Выполнена консолидация между tsserverlibrary.js и typescript.js.
  • В JavaScript возможно переопределение поведения оператора instanceof. Для этого значение справа от оператора должно иметь специальный метод с именем Symbol.hasInstance. Для более точного представления этого поведения в instanceof, TypeScript теперь проверяет, существует ли такой метод [Symbol.Instance] и объявлен ли он как функция-предикат типа. Если это так, проверяемое значение в левой части instanceof будет соответствующим образом сужено предикатом этого типа.

Источник: Infoworld