Почему Visual Studio не проверяет импорт функций typescript?
Есть Visual Studio 2019 и два очень похожих проекта Asp Net Core 3.1
В одном проекте присутствует compile-time контроль импорта функций - т.е. если не сделан импорт функции то сама VS подчеркивает такие функции и WebPack не собирает проект.
Во втором проекте такого нет - использование не импортированных функций не обнаруживается ни в редакторе VS ни при сборке WebPack. Но в рантайме появляются ошибки (Uncaught ReferenceError: ... is not defined)
Станислав Макаров, как оказалось, если в одном ts файле все функции и классы просто обьявлены (без export), то эти функции можно легко использовать в других файлах, и никто не скажет ни слова против. Ну, кроме браузера, который скажет, что такой функции нет:)
Если есть export хотя бы у одной функции/класса (интерфейса итд), то всё полностью меняется - и VS и WebPack начинает везде и всюду писать, что эти функции и классы отсутствуют и надо их создать.
Хорошо было бы такое поведение изменить.
Андрей Думаю это не так просто изменить, раз это закреплено в том числе в стандарте ES:
In TypeScript, just as in ECMAScript 2015, any file containing a top-level import or export is considered a module. Conversely, a file without any top-level import or export declarations is treated as a script whose contents are available in the global scope (and therefore to modules as well).
Станислав Макаров, я имел ввиду, что может быть была бы такая опция в конфиге, которая запрещала бы использование незаимпорченных функций.
Конкретно в моём случае был десяток-другой ts файлов, который visual studio транспилировала в один js, и не было ни одного экспорта и импорта, и всё прекрасно работало. Но при добавке WebPack все перестало работать, потому что не было ни одного импорта и экспорта) И никакой ошибки никто не выдавал (кроме браузера)