You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.2 KiB
46 lines
1.2 KiB
# import/no-named-as-default |
|
|
|
Reports use of an exported name as the locally imported name of a default export. |
|
|
|
Rationale: using an exported name as the name of the default export is likely... |
|
|
|
- *misleading*: others familiar with `foo.js` probably expect the name to be `foo` |
|
- *a mistake*: only needed to import `bar` and forgot the brackets (the case that is prompting this) |
|
|
|
## Rule Details |
|
|
|
Given: |
|
```js |
|
// foo.js |
|
export default 'foo'; |
|
export const bar = 'baz'; |
|
``` |
|
|
|
...this would be valid: |
|
```js |
|
import foo from './foo.js'; |
|
``` |
|
|
|
...and this would be reported: |
|
```js |
|
// message: Using exported name 'bar' as identifier for default export. |
|
import bar from './foo.js'; |
|
``` |
|
|
|
For post-ES2015 `export` extensions, this also prevents exporting the default from a referenced module as a name within that module, for the same reasons: |
|
|
|
```js |
|
// valid: |
|
export foo from './foo.js'; |
|
|
|
// message: Using exported name 'bar' as identifier for default export. |
|
export bar from './foo.js'; |
|
``` |
|
|
|
## Further Reading |
|
|
|
- ECMAScript Proposal: [export ns from] |
|
- ECMAScript Proposal: [export default from] |
|
|
|
[export ns from]: https://github.com/leebyron/ecmascript-export-ns-from |
|
[export default from]: https://github.com/leebyron/ecmascript-export-default-from
|
|
|