С помощью оператора as экспортируемым/импортируемым компонентам модуля можно назначить псевдоним. Затем для использования подобных компонентов применяется не их непосредственное имя, а их псевдоним.
Определим следующий модуль message.js:
let welcome = "Welcome"; const hello = "Hello"; function sayHello() { console.log("Hello METANIT.COM"); } class Messenger { send(text){ console.log("Sending message:", text); } } export {welcome as simpleMessage, hello, sayHello as printMessage, Messenger}
Здесь все компоненты модуля экспортируются в виде списка, в котором можно определить для компонента псевдним в виде:
компонент as псевдним
Так, для константы welcome определен псевдним simpleMessage
, а для функции sayHello
определен псевдним printMessage()
.
В этом случае при импорте модуля message.js данные компоненты будут доступны через свои псевднимы:
import {simpleMessage, printMessage, Messenger} from "./message.js"; printMessage(); const telegram = new Messenger(); telegram.send(simpleMessage);
Подобным образом можно указать псевдонимы и при импорте. Это может быть актуально, если имя импортируемого компонента довольно велико, и мы хотим установить для него более краткий псевдоним. Вторая причина: в модуле уже есть компоненты с таким именем, и чтобы избежать двойственности для одноименных компонентов подключаемого модуля установливаются псевдонимы. Третья причина - мы хотим дать компонентам более описательные выразительные имена.
Рассмотрим небольшой пример:
import {simpleMessage as messageText, printMessage as printHello, Messenger} from "./message.js"; const printMessage = ()=>console.log("Hello from main module"); printHello(); printMessage(); const telegram = new Messenger(); telegram.send(messageText);
Здесь в модуле импортируемой константе simpleMessage
назначается псевдним messageText
: simpleMessage as messageText
Кроме того, здесь определена функция printMessage()
. Однако из модуля также импортируется компонент с таким же именем. И чтобы избежать двойственности,
импортируемому компоненту назначается псевдним printHello
: printMessage as printHello
Далее для обращения к импортированным компонентам с псевднимами используются их псевдонимы.