Cette fonction fait partie du standard ECMAScript 2015 (ES6)
Cette technologie a été finalisée mais il est préférable de consulter le tableau de compatibilité pour connaître l'état de l'implémentation dans les différents navigateurs.
L'instruction export est utilisée pour permettre d'exporter des fonctions et objets à partir d'un fichier (ou module) donné. Cette fonctionnalité faisait auparavant partie de Netscape 4 et a été retirée dans Firefox 3.5 (bug 447713). Une nouvelle déclaration d'export, décrite ici, a été définie dans la version du standard ECMAScript 2015 (aussi appelé ECMAScript 6 ou ES6).
Syntaxe
export nom1, nom2, ..., nomN; export default nom1
nomN- La propriété, la fonction ou l'objet à exporter (qu'on pourra utiliser depuis un autre script grâce à
import.
Description
Il existe deux types d'export, chacun correspondant à une des syntaxes présentées ci-avant :
- Les exports nommés :
export maFonction; // on exporte une fonction déclarée plus haut export const toto = Math.sqrt(2); // on exporte une constante
- Les exports par défaut (un seul par script) :
export default maFonctionOuClasse // pas de point-virgule // pour une déclaration
Les exports nommés permettent de rendre disponible plusieurs objets, quantités. Le nom utilisé dans chacun des exports pourra être utilisé réciproquement dans les imports pour désigner telle ou telle valeur qu'on souhaite récupérer.
Quant aux exports par défaut, on n'en trouvera qu'un seul pour chaque module. On pourra ainsi exporter une classe, une fonction, un objet ou une autre valeur qu'on pourra importer par ailleurs sans en connaître le nom. Ce sera en quelque sorte la valeur « principale » exportée, qu'on pourra réimporter simplement.
Exemples
Utiliser les exports nommés
Dans le module on pourra avoir :
// module "monModule.js"
export function cube(x) {
return x * x * x;
}
const truc = Math.PI + Math.SQRT2;
export truc;
De cette façon (cf. import), depuis un autre script, on pourra avoir :
import { cube, truc } from 'monModule';
console.log(cube(3)); // 9
console.log(truc); // 4.555806215962888
Utiliser les exports par défaut
Si on souhaite n'exporter qu'une seule valeur ou avoir une valeur de fallback pour le module, on pourra exporter une valeur par défaut :
// module "monModule.js"
var function cube(x) {
return x * x * x;
}
export default cube;
On pourra ainsi, dans un autre script, importer très facilement ce qui est fourni par défaut :
// module "monModule.js" import maFonction from 'monModule'; console.log(maFonction(3)); // 9
Spécifications
Avant ECMAScript 2015, les fonctionnalités d'import/export et/ou concernant les modules n'avaient pas été définies au sein d'un standard ECMA-262.
| Spécification | Statut | Commentaires |
|---|---|---|
| ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'Imports' dans cette spécification. |
Standard | Définition initiale |
Compatibilité des navigateurs
| Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Support simple | Pas de support | Pas de support | Pas de support | Pas de support | Pas de support |
| Fonctionnalité | Android | Chrome pour Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Support simple | Pas de support | Pas de support | Pas de support | Pas de support | Pas de support | Pas de support |
Voir aussi
import- Article sur les modules, traduit en français depuis la série d'articles « ES6 in Depth »