Skip to content
← Back to rules

eslint/no-useless-constructor Suspicious

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();
  }
}

如何使用

To enable this rule using the config file or in the CLI, you can use:

json
{
  "rules": {
    "no-useless-constructor": "error"
  }
}
ts
import { defineConfig } from "oxlint";

export default defineConfig({
  rules: {
    "no-useless-constructor": "error",
  },
});
bash
oxlint --deny no-useless-constructor

版本

此规则于 v0.4.4 中添加。

参考资料