В 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», будет соответственно сужен данным предикатом типа.

Читайте также
JavaScript, Python и Java удерживают лидерство в рейтингах языков программирования
JavaScript, Python и Java удерживают лидерство в рейтингах языков программирования
JavaScript, Python и Java удерживают лидерство в рейтингах языков программирования

Последние данные от аналитиков RedMonk и TIOBE показывают устойчивое положение ведущих языков программирования, таких как JavaScript, Python и Java, которые продолжают лидировать в своих категориях. В то время как языки вроде C сталкиваются с вызовами, а более новые решения, такие как Ballerina, набирают популярность. В третьем квартале 2024 года в рейтинге языков программирования от RedMonk […]

Сокращение команд Flutter, Dart и Python в Google
Сокращение команд Flutter, Dart и Python в Google
Сокращение команд Flutter, Dart и Python в Google

Большое сокращение команд по ЯП Flutter, Dart, Python.

Dev новости: Zed редактор, Nuemark, Expo и Bun Shell
Dev новости: Zed редактор, Nuemark, Expo и Bun Shell
Dev новости: Zed редактор, Nuemark, Expo и Bun Shell

Zen code стал open source, инструменты для фронта Nue добавили редактор контента, релиз Expo 50

Опубликовали релиз легковесного http-сервера lighttpd 1.4.73
Опубликовали релиз легковесного http-сервера lighttpd 1.4.73
Опубликовали релиз легковесного http-сервера lighttpd 1.4.73

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