Table of Contents

About

The export statement is the counterpart of the import statement in the implementation of an ES module.

It has the same functionality that the modules.export statement of CommonJs

This feature is not implemented in any browsers natively at this time. It is implemented in many transpilers.

Export declare the module’s public API.

Syntax

You can export any top-level function, class, var, let, or const.

Syntax

Export tag

export function bar(arg1, arg2) {
}

export class foo {
  ... several methods doing image processing ...
}

// This function isn't exported and has then a local scope
function private() {
  ...
}

import them as

import { bar, foo } from ...

Lists

Rather than tagging each exported feature, you can write out a single list of all the names you want to export. It can appear anywhere in a module file’s top-level scope

export {
   foo, 
   bar as barre // you can rename the exported name
};

import it as

import { foo, barre } from ...

Type

Default

Export:

  • Export example with the shorthand syntax where the keywords export default can be followed by any value: a function, a class, an object literal, …
export default {
  field1: value1,
  field2: value2
};
  • Example with the full syntax:
let myObject = {
  field1: value1,
  field2: value2
};
export {myObject as default};

import it as:

import whatEverNameIWant from ...

Named

export const name = 'value';
export const MyComponent = /* ... */;
export const MyOtherComponent = /* ... */;

import it with

import { name, MyComponent, MyOtherComponent } from ...;