Utilizando Aliases na Exportação e Importação de Módulos em JavaScript
Com o operador as, é possível atribuir aliases aos componentes exportados/importados de um módulo. Isso permite usar os componentes por meio de seus aliases, em vez de seus nomes diretos.
Aliases na Exportação
Vamos definir o seguinte módulo message.js
:
let welcome = "Welcome";
const hello = "Hello";
function sayHello() {
console.log("Hello Programício");
}
class Messenger {
send(text) {
console.log("Sending message:", text);
}
}
export { welcome as simpleMessage, hello, sayHello as printMessage, Messenger };
Aqui, todos os componentes do módulo são exportados como uma lista, onde é possível atribuir aliases aos componentes: componente as alias
.
Assim, a constante welcome
recebe o alias simpleMessage
, e a função sayHello
recebe o alias printMessage
.
Ao importar o módulo message.js
, esses componentes estarão disponíveis por meio de seus aliases:
import { simpleMessage, printMessage, Messenger } from "./message.js";
printMessage();
const telegram = new Messenger();
telegram.send(simpleMessage);
Aliases na Importação
De maneira semelhante, é possível atribuir aliases na importação. Isso pode ser útil se o nome do componente importado for muito longo e quisermos um alias mais curto. Outra razão é a existência de componentes com o mesmo nome no módulo, evitando ambiguidade ao definir aliases para esses componentes. Por fim, podemos querer dar nomes mais descritivos aos componentes.
Vamos considerar um exemplo:
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);
Neste exemplo, a constante importada simpleMessage
recebe o alias messageText
.
Além disso, definimos a função printMessage()
. Contudo, do módulo também é importado um componente com o mesmo nome. Para evitar ambiguidade, o componente importado recebe o alias printHello
:
printMessage as printHello;
Em seguida, utilizamos os componentes importados por meio de seus aliases.