MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

Questa traduzione è incompleta. Collabora alla traduzione di questo articolo dall’originale in lingua inglese.

L'istruzione di export è utilizzata per esportare funzioni, oggetti o tipi primitivi da un dato file (o modulo).
 

Nota: Questa funzionalità non è supportata nativamente in nessun browser al momento. È implementata in molti transpilers, come Traceur CompilerBabel o Rollup.

Sintassi

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

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

export * from …;
export { name1, name2, …, nameN } from …;
export { import1 as name1, import2 as name2, …, nameN } from …;
nameN
Elemento che deve essere esportato (Così da poter essere importato via import in un altro script).

Descrizione

Ci sono due tipi diversi di export e ad ogni tipo corrisponde una delle due sintassi seguenti:

  • export espliciti:
    export { myFunction }; // esporta una funzione dichiarata in precedenza
    export const foo = Math.sqrt(2); // esporta una costante
  • Default exports (Massimo uno per script):
    export default function() {} // or 'export default class {}'
    // Non ci va il punto e virgola qui

Gli export espliciti sono utili per esportare più valori per file. Durante l'importazione verrà utilizzato il nome per recuperare il relativo valore.

Per quanto riguarda l'export di default, ce ne può essere solo uno per modulo. Un export di default può essere una funzione, una classe, un oggetto o qualunque altra cosa.

Esempi

Usando gli export espliciti

Nel modulo possiamo utilizzare il seguente codice:

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

In questo modo, in un altro script possiamo avere:

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

Usando gli export di default

Se vogliamo esportare un singolo valore o avere un valore di ripiego per il modulo possiamo usare l'export di default:

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

Quindi in un altro modulo sarà semplice importare il valore esportato:

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

Nota che non è possibile usare var, letconst con export default.

Specifiche

Specifiche Stato Commento
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Exports' in that specification.
Standard Initial definition.
ECMAScript Latest Draft (ECMA-262)
The definition of 'Exports' in that specification.
Living Standard  

Compatibilità Browser

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support No support No support No support No support No support
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support No support No support No support No support No support No support

Vedi anche

Tag del documento e collaboratori

 Hanno collaborato alla realizzazione di questa pagina: AAllegro91, Nico-92
 Ultima modifica di: AAllegro91,