Skip to content
← Back to rules

eslint/no-useless-constructor Suspicious

🛠️ An auto-fix is available for this rule.

何をするのか

クラスの動作に影響を与えずに安全に削除できるコンストラクタを禁止する。

なぜ問題なのか

ES2015 では、明示的にコンストラクタを指定しなかった場合、デフォルトのクラスコンストラクタが提供される。そのため、空のコンストラクタや、親クラスのコンストラクタにそのまま委譲するだけのコンストラクタを定義するのは不要である。

WARNING

注意点:このルールは、親クラスのコンストラクタの可視性を変更することを目的としたコンストラクタに対して報告する可能性がある。これは、ルールが型情報をもたないため、親コンストラクタが publicprotected、または private であるかどうかを判断できないからである。

このルールに関して 誤り なコードの例:

javascript
class A {
  constructor() {}
}

class B extends A {
  constructor(...args) {
    super(...args);
  }
}

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

javascript
class A {}

class B {
  constructor() {
    doSomething();
  }
}

class C extends A {
  constructor() {
    super("foo");
  }
}

class D extends A {
  constructor() {
    super();
    doSomething();
  }
}

使用方法

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

json
{
  "rules": {
    "no-useless-constructor": "error"
  }
}
bash
oxlint --deny no-useless-constructor

参照