[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Statements/export [Back]  [Original]

export - JavaScript | MDN

Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.

View in English Always switch to English

export

Baseline Large disponibilit

Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis mai 2018.

L'instruction export est utilise lors de la cration de modules JavaScript pour exporter des fonctions, des objets ou des valeurs primitives partir du module, de sorte qu'ils puissent tre utiliss par d'autres programmes grce l'instruction import.

Les modules exports sont interprts en mode strict dans tous les cas. L'instruction export ne peut pas tre utilise dans les scripts embarqus.

Dans cet article

Syntaxe

js
// Exporter des proprits individuelles
export let nom1, nom2, , nomN; // utilisable avec var, const
export let nom1 = , nom2 = , , nomN; // utilisable avec var, const
export function nomFonction(){...}
export class NomClasse {...}

// Export d'une liste de valeur
export { nom1, nom2, , nomN };

// Renommage des valeurs exportes
export { variable1 as nom1, variable2 as nom2, , nomN };

// Renommage avec la dcomposition pour l'affectation
export const { nom1, nom2: truc } = o;

// Exports par dfauts
export default expression;
export default function () {  } // fonctionne avec class, function*
export default function nom1() {  } // fonctionne avec class, function*
export { nom1 as default,  };

// Agrgation de modules
export * from ;
export { nom1, nom2, , nomN } from ;
export { import1 as nom1, import2 as nom2, , nomN } from ;
export { default } from ;
nomN

Identifiant exporter (afin qu'il puisse tre import via import dans un autre script).

Description

Il existe deux types d'export diffrents : les exports nomms et les exports par dfaut. Il est possible d'avoir plusieurs exports nomms mais un seul export par dfaut. Chaque type correspond une des syntaxes ci-dessus :

  • Les exports nomms :

    js
    // exporte une fonction dclare prcdemment
    export { maFonction };
    
    // exporte une constante
    export const machin = Math.sqrt(2);
    
  • Les exports par dfaut (fonction) :

    js
    export default function () {}
    
  • Les exports par dfaut (classe) :

    js
    export default class {}
    

Les exports nomms sont utiles pour exporter plusieurs valeurs. Lors de l'importation, il est obligatoire d'utiliser le mme nom de l'objet correspondant.

Mais un export par dfaut peut tre import avec n'importe quel nom, par exemple :

js
let k;
export default (k = 12); // dans le fichier test.js
import m from "./test"; // notez que nous avons la libert d'utiliser import m au lieu de import k, parce que k tait l'export par dfaut
console.log(m); // enregistrera 12

La syntaxe suivante n'exporte pas le dfaut depuis le module import :

js
export * from ;

Si vous avez besoin d'exporter le dfaut, crivez ce qui suit la place :

js
export { default } from "mod";

Il est possible de renommer un export afin d'viter des conflits de nommage :

js
export { maFonction as fonction1
         maVariable as variable1 };

On peut galement agrger les valeurs exportes celles d'autres modules qu'on aurait imports :

js
// Dans moduleParent.js
export { maFonction, maVariable } from "moduleFils1.js";
export { maClasse } from "moduleFils2.js";

// Dans le module de plus haut niveau
import { maFonction, maVariable, maClasse } from "moduleParent.js";

Exemples

Utilisation d'exports nomms

Dans le module, on pourra utiliser le code suivant :

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

De cette faon, dans un autre script, on pourra avoir :

js
import { cube, machin } from "mon-module";
console.log(cube(3)); // 27
console.log(machin); // 4.555806215962888

Note : Si l'import est ralis dans un script HTML, il faut que celui-ci soit charg avec l'attribut type "module" : <script type="module" src="./demo.js"></script> sinon il y aura une erreur quant aux origines multiples (CORS). Il n'est pas possible de charger des modules JavaScript via une URL file:// pour des raisons de scurit (voir CORS galement). Il faudra utiliser un serveur HTTP.

Utilisation d'exports par dfaut

Si on souhaite n'exporter qu'une seule valeur ou avoir une valeur de secours pour le module, on peut utiliser un export par dfaut :

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

Alors, dans un autre script, il sera facile d'importer l'export par dfaut :

js
import cube from "./mon-module.js";
console.log(cube(3)); // 27

Notez qu'il n'est pas possible d'utiliser var, let ou const avec export default.

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-exports

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page