¿Cuál es la diferencia entre los módulos internos y externos en TypeScript?

He pasado un tiempo leyendo la especificación del lenguaje Typescript y estoy algo confundido acerca de la diferencia entreinterno yexterno módulos Aquí está la descripción tomada directamente de la especificación:

Los módulos internos (sección 9.2.2) son miembros locales o exportados de otros módulos (incluido el módulo global y los módulos externos). Los módulos internos se declaran mediante ModuleDeclarations que especifican su nombre y cuerpo. Una ruta de nombre con más de un identificador es equivalente a una serie de declaraciones de módulos internos anidadas.

Los módulos externos (sección 9.4) son cuerpos de código cargados por separado a los que se hace referencia usando nombres de módulos externos. Un módulo externo se escribe como un archivo de origen independiente que contiene al menos una declaración de importación o exportación. Además, los módulos externos se pueden declarar utilizando AmbientModuleDeclarations en el módulo global que especifica directamente los nombres de los módulos externos como literales de cadena. Esto se describe con más detalle en la sección 0.

Por lo que he entendido, creo que los módulos externos corresponden a archivos de escritura de tipo sin incluir definiciones de módulos que simplemente exportan un conjunto de tipos y / o variables. Desde otro archivo mecanografiado puedo simplemente importar un módulo externo enfoo.ts conimport foo = module("foo");

¿Alguien puede explicarme la distinción entre los módulos externos e internos?

Respuestas a la pregunta(3)

Su respuesta a la pregunta