Skip to content
← Back to rules

import/no-named-as-default-member 懸念

何を検出するか

デフォルトのエクスポートのプロパティとして、エクスポートされた名前(名前付きエクスポート)を使用している場合に報告します。これは、名前付きエクスポートをデフォルトエクスポート経由でアクセスしようとしたときに発生し、誤りです。

なぜ問題なのか

名前付きエクスポートをデフォルトエクスポート経由でアクセスすることは誤りであり、期待通りに動作しません。名前付きエクスポートは直接インポートすべきであり、デフォルトエクスポートはプロパティなしでアクセスされます。この誤りにより、実行時エラーまたは未定義の振る舞いが発生する可能性があります。

次のような状況を想定します。

javascript
// ./bar.js
export function bar() {
  return null;
}
export default () => {
  return 1;
};

このルールに対して 不正な コードの例:

javascript
// ./foo.js
import foo from "./bar";
const bar = foo.bar; // 不正:デフォルトエクスポート経由で名前付きエクスポートにアクセスしようとしている

このルールに対して 正しい コードの例:

javascript
// ./foo.js
import { bar } from "./bar"; // 正しい:名前付きエクスポートを直接アクセスしている

使い方

このルールを設定ファイルまたは CLI で 有効化 するには、以下の方法が利用できます:

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

参照