33 lines
866 B
Markdown
33 lines
866 B
Markdown
|
# import/export
|
||
|
|
||
|
Reports funny business with exports, like repeated exports of names or defaults.
|
||
|
|
||
|
## Rule Details
|
||
|
|
||
|
```js
|
||
|
export default class MyClass { /*...*/ } // Multiple default exports.
|
||
|
|
||
|
function makeClass() { return new MyClass(...arguments) }
|
||
|
|
||
|
export default makeClass // Multiple default exports.
|
||
|
```
|
||
|
|
||
|
or
|
||
|
```js
|
||
|
export const foo = function () { /*...*/ } // Multiple exports of name 'foo'.
|
||
|
|
||
|
function bar() { /*...*/ }
|
||
|
export { bar as foo } // Multiple exports of name 'foo'.
|
||
|
```
|
||
|
|
||
|
In the case of named/default re-export, all `n` re-exports will be reported,
|
||
|
as at least `n-1` of them are clearly mistakes, but it is not clear which one
|
||
|
(if any) is intended. Could be the result of copy/paste, code duplication with
|
||
|
intent to rename, etc.
|
||
|
|
||
|
## Further Reading
|
||
|
|
||
|
- Lee Byron's [ES7] export proposal
|
||
|
|
||
|
[ES7]: https://github.com/leebyron/ecmascript-more-export-from
|