Qual é a diferença entre módulos internos e externos no TypeScript?

Eu passei algum tempo lendo a especificação da linguagem Typescript e estou um pouco confuso sobre a diferença entreinterno eexterno módulos. Aqui está a descrição tirada diretamente da especificação:

Módulos internos (seção 9.2.2) são membros locais ou exportados de outros módulos (incluindo o módulo global e módulos externos). Módulos internos são declarados usando ModuleDeclarations que especificam seu nome e corpo. Um caminho de nome com mais de um identificador é equivalente a uma série de declarações de módulo interno aninhadas.

Módulos externos (seção 9.4) são corpos de código carregados separadamente, referenciados usando nomes de módulos externos. Um módulo externo é gravado como um arquivo de origem separado que contém pelo menos uma declaração de importação ou exportação. Além disso, módulos externos podem ser declarados usando AmbientModuleDeclarations no módulo global que especificam diretamente os nomes dos módulos externos como literais de string. Isso é descrito mais adiante na seção 0.

Pelo que entendi, acho que os módulos externos correspondem a arquivos typescript sem incluir definições de módulo que simplesmente exportam um conjunto de tipos e / ou variáveis. De outro arquivo datilografado, posso importar um módulo externofoo.ts comimport foo = module("foo");

Alguém pode me explicar a destinação entre módulos externos e internos?

questionAnswers(3)

yourAnswerToTheQuestion