TypeScript 7.1 Beta уточняет типизацию импортируемых файлов

TypeScript 7.1 Beta уточняет типизацию импортируемых файлов
Содержание статьи

20 октября Microsoft представила TypeScript 7.1 Beta. Одно из изменений касается описания файлов, импортируемых с атрибутами: например, когда содержимое нужно получить как текст или объект таблицы стилей. На Mentoring.digital разбираем, почему эту возможность стоит проверять вместе со сборщиком, а не только в редакторе.

Что меняется в описаниях модулей

В TypeScript можно описывать импортируемые ресурсы через ambient modules, то есть декларации модулей без их реализации. Привязки только к расширению файла бывает недостаточно: один ресурс в разных окружениях может обрабатываться по-разному.

В 7.1 такие декларации могут учитывать атрибуты импорта. Это позволяет связать ожидаемый тип результата с тем, как запрошен ресурс, а не только с именем файла. Например, импорт CSS как таблицы стилей и обработка того же расширения сборщиком как CSS Modules представляют разные задачи.

Чего проверка типов не подтверждает

Microsoft отдельно предупреждает: импорт, совпавший с ambient-декларацией, не проверяется на наличие файла на диске. Отсутствующий ресурс всё ещё может обнаружиться при сборке или выполнении. Успешная проверка типов не доказывает, что приложение сможет загрузить файл.

Такие декларации также не добавляются автоматически во встроенные библиотеки TypeScript. Проект должен учитывать собственное окружение и его поддержку атрибутов. Новая запись в декларации не включает отсутствующую возможность в браузере или сборщике.

Что проверить в своём проекте

Для первого эксперимента выберите отдельную ветку и один реальный импорт ресурса. Сравните ожидаемый тип, результат сборки и фактическое значение при запуске. Затем проверьте отрицательный случай: что произойдёт при неверном атрибуте или отсутствующем файле.

  • Сохраните исходные версии компилятора и сборщика, чтобы различать причины изменений.
  • Проверьте декларации ресурсов, уже добавленные зависимостями проекта.
  • Не подменяйте проверку приложения одним запуском проверки типов.

Это предварительная версия. Переносить её в основной процесс выпуска имеет смысл после проверки совместимости. Если трудно отделить проблему декларации от поведения сборщика, задачу можно разобрать с наставником по TypeScript на минимальном примере.

Похожие статьи по данной теме