В 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
Стандартизация сигналов в JavaScript
Стандартизация сигналов в JavaScript

Подобно Промисам которые прошли стандартизацию Promises TC39 в ES2015 зарождается новый стандарт для управление реактивностью с помощью Signals.

В Django 5 появилось 5 новых функций
В Django 5 появилось 5 новых функций
В Django 5 появилось 5 новых функций

Django, веб-фреймворке Python, появились пять новых функций. Среди них: упрощенная визуализация полей и форм, поля модели для вычислений и генерируемые столбцы, больше декораторов асинхронного представления, обработка исключений для асинхронных отключений и другие.

Dev новости: новый упрощенный JavaScript-фреймворк Z.Js и Python-фреймворк Mesop от Google.
Dev новости: новый упрощенный JavaScript-фреймворк Z.Js и Python-фреймворк Mesop от Google.
Dev новости: новый упрощенный JavaScript-фреймворк Z.Js и Python-фреймворк Mesop от Google.

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

Рассказываем, какие интересные функции появились у веб-браузеров в октябре
Рассказываем, какие интересные функции появились у веб-браузеров в октябре
Рассказываем, какие интересные функции появились у веб-браузеров в октябре

В октябре 2023 года Firefox 118 , Safari 17 и Chrome 117 стали стабильными. Рассказываем, что это значит для веб-платформы.