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