74 lines
2 KiB
Markdown
74 lines
2 KiB
Markdown
|
# import/no-anonymous-default-export
|
||
|
|
||
|
Reports if a module's default export is unnamed. This includes several types of unnamed data types; literals, object expressions, arrays, anonymous functions, arrow functions, and anonymous class declarations.
|
||
|
|
||
|
Ensuring that default exports are named helps improve the grepability of the codebase by encouraging the re-use of the same identifier for the module's default export at its declaration site and at its import sites.
|
||
|
|
||
|
## Options
|
||
|
|
||
|
By default, all types of anonymous default exports are forbidden, but any types can be selectively allowed by toggling them on in the options.
|
||
|
|
||
|
The complete default configuration looks like this.
|
||
|
|
||
|
```js
|
||
|
"import/no-anonymous-default-export": ["error", {
|
||
|
"allowArray": false,
|
||
|
"allowArrowFunction": false,
|
||
|
"allowAnonymousClass": false,
|
||
|
"allowAnonymousFunction": false,
|
||
|
"allowCallExpression": true, // The true value here is for backward compatibility
|
||
|
"allowLiteral": false,
|
||
|
"allowObject": false
|
||
|
}]
|
||
|
```
|
||
|
|
||
|
## Rule Details
|
||
|
|
||
|
### Fail
|
||
|
```js
|
||
|
export default []
|
||
|
|
||
|
export default () => {}
|
||
|
|
||
|
export default class {}
|
||
|
|
||
|
export default function () {}
|
||
|
|
||
|
/* eslint import/no-anonymous-default-export: [2, {"allowCallExpression": false}] */
|
||
|
export default foo(bar)
|
||
|
|
||
|
export default 123
|
||
|
|
||
|
export default {}
|
||
|
```
|
||
|
|
||
|
### Pass
|
||
|
```js
|
||
|
const foo = 123
|
||
|
export default foo
|
||
|
|
||
|
export default class MyClass() {}
|
||
|
|
||
|
export default function foo() {}
|
||
|
|
||
|
/* eslint import/no-anonymous-default-export: [2, {"allowArray": true}] */
|
||
|
export default []
|
||
|
|
||
|
/* eslint import/no-anonymous-default-export: [2, {"allowArrowFunction": true}] */
|
||
|
export default () => {}
|
||
|
|
||
|
/* eslint import/no-anonymous-default-export: [2, {"allowAnonymousClass": true}] */
|
||
|
export default class {}
|
||
|
|
||
|
/* eslint import/no-anonymous-default-export: [2, {"allowAnonymousFunction": true}] */
|
||
|
export default function () {}
|
||
|
|
||
|
export default foo(bar)
|
||
|
|
||
|
/* eslint import/no-anonymous-default-export: [2, {"allowLiteral": true}] */
|
||
|
export default 123
|
||
|
|
||
|
/* eslint import/no-anonymous-default-export: [2, {"allowObject": true}] */
|
||
|
export default {}
|
||
|
```
|