Итак, у меня есть проект в VisualStudio, который является библиотекой TypeScript.
Я заметил, что при разделении моего кода на несколько файлов (с одним и тем же пространством имен верхнего уровня) и разными папками я все еще могу скомпилировать все без дополнительных ссылок с тройным слешем.
Теперь, я думаю, это имеет смысл, поскольку в справочнике TS указано:
"Пространства имен - это просто именованные объекты JavaScript в глобальном пространстве имен. Это делает пространства имен очень простой в использовании конструкцией. Они могут охватывать несколько файлов и могут быть объединены с использованием --outFile."
Дело в том, что я использую --outDir
вместо --outFile
, а также в справочнике TS говорится о разделении пространств имен:
"Поскольку между файлами существуют зависимости, мы добавим ссылочные теги, чтобы сообщить компилятору об отношениях между файлами."
Теперь у меня наверняка есть зависимости между файлами, но, похоже, их легко устранить с помощью ключевого слова export
, например:
В некоторых FileA.ts
у меня есть что-то вроде этого:
namespace LibararyNS
{
export namespace FuncNS
{
export class SomeClass extends SomeOtherClass
{
...
}
}
}
И в другом файле я могу ссылаться на SomeClass без использования ссылочной директивы.
Но теперь я спрашиваю себя, для какого варианта использования эти справочные директивы?
Я надеюсь, что кто-то может пролить свет на это для меня. Благодарю.
PS.
Я прочитал этот вопрос , но я не думаю, что он отвечает на мой вопрос.
Даже не уверен, актуален ли он вообще, так как этому вопросу уже почти 5 лет, и мои определения также работают без каких-либо ссылок. Просто они есть в моем обозревателе решений.