


20 октября Microsoft представила TypeScript 7.1 Beta. Одно из изменений касается описания файлов, импортируемых с атрибутами: например, когда содержимое нужно получить как текст или объект таблицы стилей. На Mentoring.digital разбираем, почему эту возможность стоит проверять вместе со сборщиком, а не только в редакторе.
В TypeScript можно описывать импортируемые ресурсы через ambient modules, то есть декларации модулей без их реализации. Привязки только к расширению файла бывает недостаточно: один ресурс в разных окружениях может обрабатываться по-разному.
В 7.1 такие декларации могут учитывать атрибуты импорта. Это позволяет связать ожидаемый тип результата с тем, как запрошен ресурс, а не только с именем файла. Например, импорт CSS как таблицы стилей и обработка того же расширения сборщиком как CSS Modules представляют разные задачи.
Microsoft отдельно предупреждает: импорт, совпавший с ambient-декларацией, не проверяется на наличие файла на диске. Отсутствующий ресурс всё ещё может обнаружиться при сборке или выполнении. Успешная проверка типов не доказывает, что приложение сможет загрузить файл.
Такие декларации также не добавляются автоматически во встроенные библиотеки TypeScript. Проект должен учитывать собственное окружение и его поддержку атрибутов. Новая запись в декларации не включает отсутствующую возможность в браузере или сборщике.
Для первого эксперимента выберите отдельную ветку и один реальный импорт ресурса. Сравните ожидаемый тип, результат сборки и фактическое значение при запуске. Затем проверьте отрицательный случай: что произойдёт при неверном атрибуте или отсутствующем файле.
Это предварительная версия. Переносить её в основной процесс выпуска имеет смысл после проверки совместимости. Если трудно отделить проблему декларации от поведения сборщика, задачу можно разобрать с наставником по TypeScript на минимальном примере.