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

TS теперь включает одну опцию для определенного редактора, прежде он добавлял модификатор типа, полагаясь на настройки разработчика

В TypeScript 5.3 добавили поддержку атрибутов импорта для модулей ECMAScript, оно перешло в стадию релиз-кандидата (RC). В RC добавили опцию, которая позволяет предпочесть автоимпорты только типов. Анонс вышел 3 ноября.

TS теперь включает одну опцию для определенного редактора, прежде он добавлял модификатор типа, полагаясь на настройки разработчика.

При получении автоимпорта для Person в следующем примере:
exportlet p: Person

При редактировании TypeScript обычно добавляется импорт как Person:

import { Person } from "./types"; exportlet p: Person

и при определенных настройках, например verbatimModuleSyntax, TypeScript добавит модификатор типа:

import { type Person } from "./types"; exportlet p: Person

TypeScript 5.3 будет поддерживать обновления предложения по атрибутам импорта для модулей ECMAScript.

В стандарте ECMA присутствует встроенный синтаксис для операторов импорта модулей, который позволяет передавать информацию вместе со спецификатором модуля. Все типы модулей будут поддерживаться с помощью атрибутов, описанных в унифицированном формате для всех JavaScript-сред, работающих с модулями JSON.

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

Среди главных изменений: замена assert на with. Среды выполнения теперь используются для разрешения и интерпретации путей импорта. Перед загрузкой модуля утверждения импорта могут принимать только некоторые характеристики. Однако старый синтаксис утверждений импорта постепенно уступает место новым подходам.

TypeScript 5.3 RC можно получить через NuGet или через NPM с помощью следующей команды:

npm install -D typescript@rc

Что еще появилось в TypeScript 5.3:

  • Для типа import добавили поддержку атрибута resolution-mode.  Сужение осуществляется на основе условий в каждой клаузе case с помощью переключателя (true).
  • TypeScript 5.3 при проверке обращений к суперсвойствам и вызовам методов теперь уделяет особое внимание соответствию полей классов, что позволяет выявлять ошибки связанные с проверкой типов. Вставки подсказок в TypeScript теперь поддерживают переход к определению типов, что значительно облегчает навигацию по коду.
  • При использовании компилятора TypeScript через tsc теперь происходит пропуск разбора JSDoc, что приводит к сокращению времени разбора и объему памяти, занимаемому для хранения комментариев.
  • Провели консолидацию между tsserverlibrary.js и typescript.js.
  • Теперь у вас есть возможность автоматического определения того, когда объявление, использующее слово «super», считается полем класса и вызывает ошибку.

Более того, в JavaScript появилась новая возможность настроить оператор «instanceof» путем определения метода «Symbol.hasInstance» у объекта, который находится справа от оператора. Чтобы добиться точного воспроизведения данного поведения в TypeScript, мы теперь проверяем наличие метода «Symbol.hasInstance» и его объявление в качестве функции-предиката типа. Если это условие выполняется, то объект, проверяемый в левой части оператора «instanceof», будет соответственно сужен данным предикатом типа.

Читайте также
Рассказываем об обновлениях Firefox 119
Рассказываем об обновлениях Firefox 119
Рассказываем об обновлениях Firefox 119

В октябре вышли обновления Firefox 119. Также сформировали обновление ветки с длительным сроком поддержки — 115.4.0.

Новый инструмент AutoCode: генерация Angular-компонентов из дизайна Figma
Новый инструмент AutoCode: генерация Angular-компонентов из дизайна Figma
Новый инструмент AutoCode: генерация Angular-компонентов из дизайна Figma

Разработка интерфейсов по макетам Figma часто требует множества итераций и значительных временных затрат. Однако новый инструмент AutoCode от компании WaveMaker обещает упростить этот процесс, автоматически генерируя готовые компоненты для веб- и мобильных приложений.

Dev новости: Реакции разработчиков на изменения в React 19 и Рост популярности векторных БД
Dev новости: Реакции разработчиков на изменения в React 19 и Рост популярности векторных БД
Dev новости: Реакции разработчиков на изменения в React 19 и Рост популярности векторных БД

На прошлой неделе разработчики React столкнулись с потенциальной проблемой, связанной с новым обновлением React 19, которое могло замедлить работу существующих сайтов, построенных на этой платформе. Юджи из Code Miner объяснил, что проблема связана с компонентом Suspense и его обработкой в React 19 по сравнению с React 18.

В США создают консорциум для регуляции AI
В США создают консорциум для регуляции AI
В США создают консорциум для регуляции AI

США хотят ограничить разработку AI попыткой регулировать