Skip to content
← Back to rules

import/no-anonymous-default-export スタイル

何を報告するか

モジュールのデフォルトエクスポートが名前なしの場合に報告します。 これは、いくつかの種類の名前なしデータ型を含みます; リテラル、オブジェクト式、配列、匿名関数、アロー関数、 および匿名クラス宣言です。

なぜ問題なのか

デフォルトエクスポートが名前付きであることを保証することで、 同じ識別子をモジュールのデフォルトエクスポートの定義場所とインポート場所で再利用することを促進し、 コードベースの検索性(grepability)を向上させることができます。

このルールに対する不正なコードの例:

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

参照