Почему Typescript использует ключевое слово «export», чтобы сделать классы и интерфейсы общедоступными?

Работая с Typescript, я понял, что мои классы в модулях (используемых в качестве пространств имен) не были доступны другим классам, пока я не написалexport ключевое слово перед ними, например:

module some.namespace.here
{
   export class SomeClass{..}
}

Так что теперь я могу использовать приведенный выше код следующим образом:

var someVar = new some.namespace.here.SomeClass();

Однако мне было просто интересно, почему это ключевое слово используется, а не простоpublic ключевое слово, которое используется на уровне метода для обозначения того, что метод или свойство должны быть доступны извне. Так почему бы просто не использовать этот же механизм, чтобы сделать классы, интерфейсы и т. Д. Внешне видимыми?

Это дало бы полученный код наподобие:

module some.namespace.here
{
   public class SomeClass{..}
}

Ответы на вопрос(2)

Ваш ответ на вопрос