Skip to content
← Back to rules

import/no-anonymous-default-export 样式

它的作用

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

为什么这不好?

确保默认导出具有名称,有助于提升 代码库的可 grep 性,因为它鼓励在 模块默认导出的声明位置和导入位置重复使用同一个标识符。

示例

此规则的错误代码示例:

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

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

如何使用

To enable this rule using the config file or in the CLI, you can use:

json
{
  "plugins": ["import"],
  "rules": {
    "import/no-anonymous-default-export": "error"
  }
}
ts
import { defineConfig } from "oxlint";

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

版本

此规则于 v0.15.14 中添加。

参考