Во время работы с Typescript я понял, что мои классы в модулях (используемых в качестве пространств имен) были недоступны для других классов, если я не написал export
перед ними ключевое слово, например:
module some.namespace.here
{
export class SomeClass{..}
}
Итак, теперь я могу использовать приведенный выше код следующим образом:
var someVar = new some.namespace.here.SomeClass();
Однако мне просто было интересно, почему это ключевое слово используется вместо того, чтобы просто использовать public
ключевое слово, которое используется на уровне метода для обозначения того, что метод или свойство должны быть доступны извне. Так почему бы просто не использовать тот же механизм, чтобы сделать классы, интерфейсы и т. Д. Внешне видимыми?
В результате получится такой код:
module some.namespace.here
{
public class SomeClass{..}
}