При импорте модуля без '.' или '..'
Например: import File from 'FileClass';
Как компилятор ts разрешает 'FileClass'
точно?Что именно происходит, когда `import Foo from" Bar "` в TypeScript
Док говорит
- Имена модулей могут быть относительными или верхнего уровня. Имя модуля относительное, если первый член равен «.». или "..".
- Имена верхнего уровня разрешены с помощью корня пространства имен концептуального модуля.
https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md#11.3.1
Так 'FileClass'
должен быть так называемый top-level
модуль.
Но, документ не объяснил, что такое модуль top-level
.
Первый вопрос для меня - это то, что означает термин top-level
? А что такое conceptual module name space root
?
Продолжить читать документ, и я нашел этот
Если декларация импорта указывает имя модуля верхнего уровня и программа не содержит AmbientModuleDeclaration (раздел 12.2) с строковый литерал, который указывает, что точное название , имя разрешается в зависимости от хоста (например, рассматривая имя относительно корня пространства имен имени модуля). Если соответствующий модуль не найден, возникает ошибка.
Это трудно понять для меня. Есть ли для этого пример реального мира?
PS: Я использую машинопись 1.5
Вы можете просмотреть скомпилированные файлы '.js' и посмотреть, что именно происходит. – Artem