Dlaczego typescript używa słowa kluczowego „eksport” do publicznego udostępniania klas i interfejsów?

Podczas pogrążania się za pomocą Typescript zdałem sobie sprawę, że moje klasy w modułach (używane jako przestrzenie nazw) nie były dostępne dla innych klas, chyba że napisałemexport słowo kluczowe przed nimi, takie jak:

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

Teraz mogę użyć powyższego kodu w następujący sposób:

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

Zastanawiałem się jednak, dlaczego to słowo kluczowe jest używane w przeciwieństwie do używaniapublic słowo kluczowe używane na poziomie metody do wskazania, że ​​metoda lub własność powinny być dostępne zewnętrznie. Dlaczego więc nie użyć tego samego mechanizmu do tworzenia klas, interfejsów itp. Widocznych zewnętrznie?

Dałoby to wynikowy kod, taki jak:

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

questionAnswers(2)

yourAnswerToTheQuestion