Ответ 1
Пространства имен - это TypeScript способ структурирования кода, когда вы не хотите, чтобы полученный код Javascript использовал загрузчик модуля.
Вы можете найти больше о пространствах имен и модулях в справочнике здесь.
Я использовал typescript через несколько месяцев, и я еще не понял различия между пространствами имен и модулями.
Я знаю, что до того, как они были названы внутренними и внешними модулями, но с обоими я могу импортировать классы из других файлов. Итак, какова разница реальная?
Пространства имен - это TypeScript способ структурирования кода, когда вы не хотите, чтобы полученный код Javascript использовал загрузчик модуля.
Вы можете найти больше о пространствах имен и модулях в справочнике здесь.
Как указано в TS-руководстве есть 2 типа модулей: "внутренний" и "внешний". Код во внутреннем модуле написан в Typescript, а "внешний" написан в Javascript.
Чтобы согласовать с новой терминологией ECMAScript 2015, они решили переименовать их следующим образом:
Итак:
Пример:
Скажем, у вас есть общедоступная последовательность пространства имен NamespaceA.NamespaceB.NamespaceC
, которая предоставляет открытый класс ClassD
.
Вы можете получить доступ ко всем этим глобально следующим образом:
window.NamespaceA
window.NamespaceA.NamespaceB
window.NamespaceA.NamespaceB.NamespaceC
window.NamespaceA.NamespaceB.NamespaceC.ClassD
без window.NamespaceA = NamespaceA
и если вы используете модули, вы должны использовать "волшебство" выше