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.
Examples
Section titled ExamplesInvalid
Section titled Invalidimport { 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.
Valid
Section titled Validexport { A } from "mod";export * as ns from "mod";export { default as D } from "mod";