Я потратил некоторое время на чтение спецификации языка Машинопись и я несколько смутился о разнице между внутренними и внешними модулями. Вот описание берется непосредственно из спецификации:
Внутренние модули (раздел 9.2.2) являются локальными или вывозимыми членами других модулей (включая глобальный модуль и внешние модули). Внутренние модули объявляются с помощью ModuleDeclarations, которые определяют свое имя и тело. Имя путь с более чем одним идентификатором эквивалентно серии вложенных друг в друг внутренних деклараций модуля.
Внешние модули (раздел 9.4) отдельно загружены тела кода ссылки с использованием внешних имен модулей. Внешний модуль записывается как отдельный исходный файл, который содержит, по меньшей мере, одну декларацию импорта или экспорта. Кроме того, внешние модули могут быть объявлены с использованием AmbientModuleDeclarations в глобальном модуле, который непосредственно указать внешние имена модулей в качестве строковых литералов. Это описано далее в разделе 0.
Из того, что я понял , я думаю , что внешние модули соответствуют машинописи файлов без ограждающих определения модуля , который просто экспортировать набор типов и / или переменными. С другой файл машинопись я могу просто импорт внешний модуль в foo.ts сimport foo = module(foo);
Может кто-нибудь объяснить мне destinction между внешними и внутренними модулями?













