Tradução em progresso.

export é usado para exportar funções, objetos ou valores primitivos de um arquivo (ou módulo).

Observação: Por enquanto esse recurso não está implementado nativamente. Ele é implementado em vários transpiladores, tais como Traceur CompilerBabel ou Rollup.

Sintaxe

export { name1, name2, …, nameN };
export { variable1 as name1, variable2 as name2, …, nameN };
export let name1, name2, …, nameN; // também var
export let name1 = …, name2 = …, …, nameN; // também var, const

export default expression;
export default function (…) { … } // também class, function*
export default function name1(…) { … } // também class, function*
export { name1 as default, … };

export * from …;
export { name1, name2, …, nameN } from …;
export { import1 as name1, import2 as name2, …, nameN } from …;
nameN
Identificador para ser exportado (assim ele pode ser importado via import em outro script).

Descrição

Há dois diferentes tipos de exportar, explícito(named) e padrão(default).  Pode-se ter vários exportações explícitas por módulo, mas apenas uma padrão. Cada tipo corresponde à algum na síntaxe acima:

  • Exportações nomeadas:
    // exporta uma função definida anteriormente
    export { myFunction }; 
    
    // exporta uma constante
    export const foo = Math.sqrt(2); 
  • Exportação padrão (pode ser feita apenas uma por script):
    // exporta um objeto previamente definido
    export default MyObject;
    
    // exporta uma função ou classe
    export default class {}
    

Exportações explícitas são úteis para exportar vários valores. Durante a importação, alguém vai ser capaz de usar o mesmo nome para referir ao valor correspondente.

Mas a exportação padrão só pode ser feita uma vez em cada módulo, aceitando qualquer tipo de valor, recusando o uso de var, let ou const.

Exemplos

Usando exportações nomeadas

Nesse módulo poderiamos usar o seguinte código:

// módulo "my-module.js"
function cube(x) {
  return x * x * x;
}
const foo = Math.PI + Math.SQRT2;
export { cube, foo };

Desta maneira, em outro script (cf. import), nós poderiamos usar:

import { cube, foo } from 'my-module';
console.log(cube(3)); // 27
console.log(foo);    // 4.555806215962888

Usando a exportação padrão

Se queremos exportar um valor sozinho ou obter um valor de reserva para o nosso módulo, nós poderiamos usar export default:

// módulo "my-module.js"
export default function cube(x) {
  return x * x * x;
}

Daí em outro script podemos usar:

import cube from 'my-module';
console.log(cube(3)); // 27

Especificações

Especificação Estado Comentário
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Exports' in that specification.
Padrão Initial definition.
ECMAScript Latest Draft (ECMA-262)
The definition of 'Exports' in that specification.
Rascunho  

Compatibilidade

Estamos convertendo nossos dados de compatibilidade para o formato JSON. Esta tabela de compatibilidade ainda usa o formato antigo, pois ainda não convertemos os dados que ela contém. Descubra como você pode ajudar!

Recurso Chrome Firefox (Gecko) Internet Explorer Opera Safari
Suporte básico Não suportado Não suportado Não suportado Não suportado Não suportado
Recurso Android Chrome (Android) Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Suporte básico Não suportado Não suportado Não suportado Não suportado Não suportado Não suportado

 

Veja também

Etiquetas do documento e colaboradores

Colaboradores desta página: jomarcardoso, renamed, nicematt
Última atualização por: jomarcardoso,