Exportações Default vs. Nomeadas
Parte da seção Programação Orientada a Objetos do Journey de JavaScript da Coddy — lição 10 de 56.
Em módulos JavaScript, você tem duas maneiras principais de exportar seu código: named exports e default exports.
Named Exports permitem que você exporte múltiplos valores de um módulo:
// math.js
export function add(a, b) {
return a + b;
}
export function subtract(a, b) {
return a - b;
}Ao importar exportações nomeadas, você deve usar exatamente os mesmos nomes dentro de chaves:
// app.js
import { add, subtract } from './math.js';
console.log(add(5, 3)); // 8
console.log(subtract(10, 4)); // 6Se você precisar renomear uma importação nomeada, use a palavra-chave as para criar um apelido:
// app.js
import { add as sum, subtract as minus } from './math.js';
console.log(sum(5, 3)); // 8
console.log(minus(10, 4)); // 6Exportações Padrão permitem que você exporte um único valor principal de um módulo:
// user.js
const user = {
name: 'John',
age: 30
};
export default user;Ao importar um default export, você pode usar qualquer nome que desejar sem o uso de chaves:
// app.js
import person from './user.js';
console.log(person.name); // 'John'Quando usar cada um? Use exportações nomeadas quando um módulo fornece múltiplas utilidades relacionadas (ex: uma coleção de funções auxiliares). Use uma exportação padrão quando um módulo tem um propósito primário ou valor principal (ex: uma classe, um componente ou um objeto de configuração).
Você pode combinar ambos os tipos de exportações em um único módulo:
// vehicle.js
export const wheels = 4;
export const doors = 4;
const car = {
brand: 'Toyota',
model: 'Corolla'
};
export default car;E importe-os juntos:
// app.js
import myCar, { wheels, doors } from './vehicle.js';
console.log(myCar.brand); // 'Toyota'
console.log(wheels); // 4Desafio
FácilVocê tem dois arquivos. Sua tarefa é configurar as exportações em calculator.js e as importações em main.js.
- Em
calculator.js: Exportecalculatecomo default esquarecomo nomeada - Em
main.js: Importe ambas as funções corretamente
Os testes verificarão:
- Exportação default usada para
calculate - Exportação nomeada usada para
square - Ambas as importações funcionam corretamente
Experimente você mesmo
// TODO: Importe ambas as funções aqui de calculator.js
// Teste
console.log(calculate(10, 5, '+')); // Deve exibir 15
console.log(square(4)); // Deve exibir 16Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Programação Orientada a Objetos
1Objetos e a Palavra-chave this
Revisão Rápida: ObjetosAdicionando Métodos a ObjetosEntendendo a Palavra-chave thisFunções ConstrutorasA Palavra-chave newDesafio de Recapitulação7Herança e a palavra-chave extends
HerançaA relação "é um"A palavra-chave extendsO método super()Herdando propriedades e métodosDesafio de recapitulação10Polimorfismo
O que é Polimorfismo?Sobrescrevendo Métodos HerdadosUsando superDesafio de Recapitulação13Composição vs. Herança
A relação "tem um" vs. "é um"Os limites da herança profundaConstruindo objetos2Organizando o Código
O que são Módulos?Exportando com exportImportando com importExportações Default vs. Nomeadas5Encapsulamento e Acesso
EncapsulamentoCampos de Classe Públicos e PrivadosMétodos PrivadosDesafio de Recapitulação8Organizando Código POO
Organizar Classes em Módulos11Projeto: Um Renderizador de Formas
Configuração: Classe Shape e ExportaçãoHerança da Classe CircleSobrescrita e Método AreaContador de Formas Estático14Sistema de Gerenciamento de Biblioteca
Projetando a BibliotecaClasse Livro com ComposiçãoValidação do Autor do Livro