Использование псевдонимов при экспорте и импорте

Последнее обновление: 19.11.2023

С помощью оператора 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

Далее для обращения к импортированным компонентам с псевднимами используются их псевдонимы.

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850