Модули¶
Глобальный модуль¶
По умолчанию, когда вы начинаете писать код в новом файле TypeScript, ваш код находится в глобальном пространстве имен. В качестве демонстрации рассмотрим файл foo.ts
:
1 |
|
Если вы теперь создадите новый файл bar.ts
в том же проекте, система типов TypeScript разрешит вам использовать переменную foo
, как если бы она была доступна глобально:
1 |
|
Нет необходимости говорить, что наличие глобального пространства имен опасно, поскольку оно открывает ваш код для конфликтов имен. Мы рекомендуем использовать файловые модули, которые представлены далее.
Файловые модули¶
Также называются внешние модули. Если у вас есть import
или export
в корне файла TypeScript, тогда он создает локальную область видимости внутри этого файла. Так что, если мы изменим предыдущий foo.ts
на следующий (обратите внимание на использование export
):
1 |
|
У нас больше не будет foo
в глобальной области видимости. Это можно продемонстрировать, создав новый файл bar.ts
следующим образом:
1 |
|
Если вы хотите использовать данные из foo.ts
в bar.ts
вам нужно явно импортировать их. Это показано в обновленном bar.ts
ниже:
1 2 |
|
Использование import
в bar.ts
не только позволяет использовать данные из других файлов, но также помечает файл bar.ts
как module и, следовательно, объявления в bar.ts
не загрязняют глобальное пространство имен.
Файлы TypeScript используют внешние модули тип которых в сгенерированном JavaScript управляется флагом module
.