0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>В этом уроке мы рассмотрим систему TypeScript-модулей, которая была создана до стандартизации ESM-модулей.</p>
1
<p>В этом уроке мы рассмотрим систему TypeScript-модулей, которая была создана до стандартизации ESM-модулей.</p>
2
<p>По умолчанию эта система совместима с Node.js-модулями - она использует идентичный алгоритм определения импортов и экспортов. С другой стороны, синтаксически эта система больше похожа на ESM, потому что мы используем ключевые слова import и export для импортирования в текущий модуль и экспорта из него, при этом остается валидным использование CommonJS-модулей. Посмотрим, как это работает на практике:</p>
2
<p>По умолчанию эта система совместима с Node.js-модулями - она использует идентичный алгоритм определения импортов и экспортов. С другой стороны, синтаксически эта система больше похожа на ESM, потому что мы используем ключевые слова import и export для импортирования в текущий модуль и экспорта из него, при этом остается валидным использование CommonJS-модулей. Посмотрим, как это работает на практике:</p>
3
<p>Как и в ESM-стандарте, Typescript также поддерживает именованный экспорт и импорт, а также импорт всего экспортированного через import * as smth from './somewhere'.</p>
3
<p>Как и в ESM-стандарте, Typescript также поддерживает именованный экспорт и импорт, а также импорт всего экспортированного через import * as smth from './somewhere'.</p>
4
<p>Некоторые пакеты поставляют только типы. Для таких случаев есть специальный синтаксис, который позволяет отдельно импортировать и экспортировать типы:</p>
4
<p>Некоторые пакеты поставляют только типы. Для таких случаев есть специальный синтаксис, который позволяет отдельно импортировать и экспортировать типы:</p>
5
<p>Если модули решают проблему разнородных сущностей и коллизий с помощью разнесения кода по нескольким файлам, то механизм namespace позволяет оставаться в рамках одного файла:</p>
5
<p>Если модули решают проблему разнородных сущностей и коллизий с помощью разнесения кода по нескольким файлам, то механизм namespace позволяет оставаться в рамках одного файла:</p>
6
<p>Больше всего этот механизм полезен авторам библиотек и оберток с типами. Они заключают все интерфейсы в один namespace. Это гарантирует отсутствие коллизий имен и упрощает пользователям слияние интерфейсов. О последнем пункте поговорим в одном из следующих уроков курса.</p>
6
<p>Больше всего этот механизм полезен авторам библиотек и оберток с типами. Они заключают все интерфейсы в один namespace. Это гарантирует отсутствие коллизий имен и упрощает пользователям слияние интерфейсов. О последнем пункте поговорим в одном из следующих уроков курса.</p>
7
<h2>Рекомендуемые программы</h2>
7
<h2>Рекомендуемые программы</h2>