В чем разница между модулем и скриптом? - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь просмотреть документацию по машинописи, чтобы понять модули, которые совпадают с модулями ES6.

typcript-modules - документация по модулям машинописи.В нем говорится, что

Модули выполняются в своей собственной области, а не в глобальной;это означает, что переменные, функции, классы и т. д., объявленные в модуле, не видны вне модуля, если они явно не экспортированы с использованием одной из форм экспорта.И наоборот, чтобы использовать переменную, функцию, класс, интерфейс и т. Д., Экспортированные из другого модуля, его необходимо импортировать с помощью одной из форм импорта.

И

В TypeScript, как и в ECMAScript 2015, любой файл, содержащий импорт или экспорт верхнего уровня, считается модулем.И наоборот, файл без каких-либо объявлений импорта или экспорта верхнего уровня рассматривается как сценарий , содержимое которого доступно в глобальной области действия (и, следовательно, также для модулей).

Он говорит, что что-либо внутри файла без операторов импорта или экспорта доступно глобально.Но это не так.

  • папка
    • script1.js
    • script2.js

script1.js

var variable = "Hello";

script2.js

console.log(variable);

Согласно заявлениюзаписанный в документации, когда я запускаю script2.js, он не должен выдавать никаких ошибок и выводить значение переменной, так как script1.js не имеет операторов import, export и, следовательно, переменная доступна в глобальной области видимости.Но это дает ошибку.Тогда что это означает, что содержимое скрипта доступно в глобальной области видимости?

1 Ответ

1 голос
/ 04 апреля 2019

В файле HTML, если вы введете <script scr="./script2.js" /><script scr="./script1.js" />, вы увидите Hello в консоли.

...