Skip to content
← Back to rules

eslint/no-useless-constructor 可疑

An auto-fix is available for this rule.

它的作用

禁止可以安全移除而不会改变类行为的构造函数。

为什么这是不好的?

ES2015 在未指定构造函数时会提供一个默认的类构造函数。因此,提供空的构造函数或仅将调用委托给其父类的构造函数是不必要的。

WARNING

注意事项:此 lint 规则会对那些唯一目的是更改父构造函数可见性的构造函数发出警告。这是因为该规则缺乏类型信息,无法确定父构造函数是 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

参考资料