Skip to content

noExportedImports

Diagnostic Category: lint/nursery/noExportedImports

Since: vnext

Disallow exporting an imported variable.

In JavaScript, you can re-export a variable either by using export from or by first importing the variable and then exporting it with a regular export.

You may prefer to use the first approach, as it clearly communicates the intention to re-export an import, and can make static analysis easier.

import { A } from "mod";
export { A };
code-block.js:1:10 lint/nursery/noExportedImports ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

An import should not be exported. Use export from instead.

> 1 │ import { A } from “mod”;
^
2 │ export { A };
3 │

export from makes it clearer that the intention is to re-export a variable.

import * as ns from "mod";
export { ns };
code-block.js:1:8 lint/nursery/noExportedImports ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

An import should not be exported. Use export from instead.

> 1 │ import * as ns from “mod”;
^^^^^^^
2 │ export { ns };
3 │

export from makes it clearer that the intention is to re-export a variable.

import D from "mod";
export { D };
code-block.js:1:8 lint/nursery/noExportedImports ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

An import should not be exported. Use export from instead.

> 1 │ import D from “mod”;
^
2 │ export { D };
3 │

export from makes it clearer that the intention is to re-export a variable.

export { A } from "mod";
export * as ns from "mod";
export { default as D } from "mod";