Questa traduzione è incompleta. Aiutaci a tradurre questo articolo dall’inglese
Nota: Questa funzionalità non è supportata nativamente in nessun browser al momento. È implementata in molti transpilers, come Traceur Compiler, Babel 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
importin 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, let o const 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. |
Draft |
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
import- ES6 in Depth: Modules, Hacks blog post by Jason Orendorff
- Axel Rauschmayer's book: "Exploring JS: Modules"