Skip to content
← Back to rules

import/no-anonymous-default-export 风格

它的作用

如果模块的默认导出未命名,则会报告警告。 这包括多种未命名的数据类型; 字面量、对象表达式、数组、匿名函数、箭头函数, 以及匿名类声明。

为什么这是个问题?

确保默认导出具有名称有助于通过鼓励在模块的声明位置和导入位置使用相同的标识符,从而提高代码库的可搜索性。

示例

此规则的错误示例:

js
export default [];
export default () => {};
export default class {};
export default function() {};
export default foo(bar);
export default 123;
export default {};
export default new Foo();
export default `foo`;
export default /^123/;

此规则的正确示例:

js
const foo = 123;
export default foo;
export default function foo() {};
export default class MyClass {};
export default function foo() {};
export default foo(bar);
/* import/no-anonymous-default-export: ["error", { "allowLiteral": true }] */
export default 123;
/* import/no-anonymous-default-export: ["error", { "allowArray": true }] */
export default []
/* import/no-anonymous-default-export: ["error", { "allowArrowFunction": true }] */
export default () => {};
/* import/no-anonymous-default-export: ["error", { "allowAnonymousClass": true }] */
export default class {};
/* import/no-anonymous-default-export: ["error", { "allowAnonymousFunction": true }] */
export default function() {};
/* import/no-anonymous-default-export: ["error", { "allowObject": true }] */
export default {};
/* import/no-anonymous-default-export: ["error", { "allowNew": true }] */
export default new Foo();
/* import/no-anonymous-default-export: ["error", { "allowCallExpression": true }] */
export default foo(bar);

默认情况下,所有类型的匿名默认导出都被禁止, 但可以通过在选项中启用特定类型来选择性地允许它们。

配置

此规则接受一个包含以下属性的配置对象:

allowAnonymousClass

type: boolean

default: false

允许匿名类作为默认导出。

allowAnonymousFunction

type: boolean

default: false

允许匿名函数作为默认导出。

allowArray

type: boolean

default: false

允许匿名数组作为默认导出。

allowArrowFunction

type: boolean

default: false

允许匿名箭头函数作为默认导出。

allowCallExpression

type: boolean

default: true

允许匿名调用表达式作为默认导出。

allowLiteral

type: boolean

default: false

允许匿名字面量作为默认导出。

allowNew

type: boolean

default: false

允许匿名 new 表达式作为默认导出。

allowObject

type: boolean

default: false

允许匿名对象作为默认导出。

如何使用

要通过配置文件或 CLI 启用此规则,可以使用:

json
{
  "plugins": ["import"],
  "rules": {
    "import/no-anonymous-default-export": "error"
  }
}
bash
oxlint --deny import/no-anonymous-default-export --import-plugin

参考资料