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 中添加。
