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