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