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