Основы Typescript
Теория: Система модулей
В этом уроке мы рассмотрим систему TypeScript-модулей, которая была создана до стандартизации ESM-модулей.
По умолчанию эта система совместима с Node.js-модулями — она использует идентичный алгоритм определения импортов и экспортов. С другой стороны, синтаксически эта система больше похожа на ESM, потому что мы используем ключевые слова import и export для импортирования в текущий модуль и экспорта из него, при этом остается валидным использование CommonJS-модулей. Посмотрим, как это работает на практике:
Как и в ESM-стандарте, Typescript также поддерживает именованный экспорт и импорт, а также импорт всего экспортированного через import * as smth from './somewhere'.
Некоторые пакеты поставляют только типы. Для таких случаев есть специальный синтаксис, который позволяет отдельно импортировать и экспортировать типы:
Если модули решают проблему разнородных сущностей и коллизий с помощью разнесения кода по нескольким файлам, то механизм namespace позволяет оставаться в рамках одного файла:
Больше всего этот механизм полезен авторам библиотек и оберток с типами. Они заключают все интерфейсы в один namespace. Это гарантирует отсутствие коллизий имен и упрощает пользователям слияние интерфейсов. О последнем пункте поговорим в одном из следующих уроков курса.



