Skip to content
← Back to rules

eslint/no-dupe-class-members 正しさ

This rule is turned on by default.

何をするか

クラスメンバの重複を禁止します。

このルールは、TypeScript コードでは無効にできます。TypeScript コンパイラがこのチェックを強制しているためです。

なぜ問題なのか

クラスメンバに同じ名前の宣言が複数ある場合、最後の宣言が他の宣言を静かに上書きしてしまいます。これにより予期しない動作が発生する可能性があります。

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

javascript
class A {
  foo() {
    console.log("foo");
  }
  foo = 123;
}
let a = new A();
a.foo(); // Uncaught TypeError: a.foo is not a function

このルールに対して適切なコードの例:

javascript
class A {
  foo() {
    console.log("foo");
  }
}
let a = new A();
a.foo();

使い方

設定ファイルまたは CLI でこのルールを有効化するには、次のようにします:

json
{
  "rules": {
    "no-dupe-class-members": "error"
  }
}
bash
oxlint --deny no-dupe-class-members

参照