Ссылки с тройным слешем при разделении пространств имен по файлам? - PullRequest
0 голосов
/ 24 января 2019

Итак, у меня есть проект в VisualStudio, который является библиотекой TypeScript.

Я заметил, что при разделении моего кода на несколько файлов (с одним и тем же пространством имен верхнего уровня) и разными папками я все еще могу скомпилировать все без дополнительных ссылок с тройным слешем.

Теперь, я думаю, это имеет смысл, поскольку в справочнике TS указано:

"Пространства имен - это просто именованные объекты JavaScript в глобальном пространстве имен. Это делает пространства имен очень простой в использовании конструкцией. Они могут охватывать несколько файлов и могут быть объединены с использованием --outFile."

Дело в том, что я использую --outDir вместо --outFile, а также в справочнике TS говорится о разделении пространств имен:

"Поскольку между файлами существуют зависимости, мы добавим ссылочные теги, чтобы сообщить компилятору об отношениях между файлами."

Теперь у меня наверняка есть зависимости между файлами, но, похоже, их легко устранить с помощью ключевого слова export, например:

В некоторых FileA.ts у меня есть что-то вроде этого:

namespace LibararyNS 
{
    export namespace FuncNS
    {
        export class SomeClass extends SomeOtherClass
        {
           ...
        }
    }
}

И в другом файле я могу ссылаться на SomeClass без использования ссылочной директивы.

Но теперь я спрашиваю себя, для какого варианта использования эти справочные директивы?

Я надеюсь, что кто-то может пролить свет на это для меня. Благодарю.

PS.

Я прочитал этот вопрос , но я не думаю, что он отвечает на мой вопрос.

Даже не уверен, актуален ли он вообще, так как этому вопросу уже почти 5 лет, и мои определения также работают без каких-либо ссылок. Просто они есть в моем обозревателе решений.

...