¿Por qué Typescript usa la palabra clave "exportar" para hacer que las clases y las interfaces sean públicas?

Mientras incursionaba con Typescript, me di cuenta de que mis clases dentro de módulos (utilizados como espacios de nombres) no estaban disponibles para otras clases a menos que escribieraexport palabra clave antes de ellos, tales como:

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

Así que ahora puedo usar el código anterior como este:

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

Sin embargo, me preguntaba por qué se usa esta palabra clave en lugar de solo usar lapublic palabra clave que se utiliza a nivel de método para indicar que un método o propiedad debe ser accesible externamente. Entonces, ¿por qué no usar este mismo mecanismo para hacer que las clases e interfaces, etc. sean visibles externamente?

Esto daría el código resultante como:

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

Respuestas a la pregunta(2)

Su respuesta a la pregunta