no-useless-constructor
禁止不必要的构造函数
此规则报告的一些问题可通过编辑器 建议 手动修复
如果没有指定,ES2015 会提供一个默认的类构造函数。因此,提供一个空的构造函数或一个仅仅委托给其父类的构造函数是没有必要的,如以下示例所示:
🌐 ES2015 provides a default class constructor if one is not specified. As such, it is unnecessary to provide an empty constructor or one that simply delegates into its parent class, as in the following examples:
class A {
constructor () {
}
}
class B extends A {
constructor (value) {
super(value);
}
}
规则详情
🌐 Rule Details
此规则标记可以安全删除而不更改类的工作方式的类构造函数。
🌐 This rule flags class constructors that can be safely removed without changing how the class works.
此规则的错误代码示例:
🌐 Examples of incorrect code for this rule:
/*eslint no-useless-constructor: "error"*/
class A {
constructor () {
}
}
class B extends A {
constructor (...args) {
super(...args);
}
}
符合此规则的正确代码示例:
🌐 Examples of correct code for this rule:
/*eslint no-useless-constructor: "error"*/
class A { }
class B {
constructor () {
doSomething();
}
}
class C extends A {
constructor() {
super('foo');
}
}
class D extends A {
constructor() {
super();
doSomething();
}
}
此规则还支持 TypeScript 类型语法。
🌐 This rule additionally supports TypeScript type syntax.
针对该规则的 错误 TypeScript 代码示例:
🌐 Examples of incorrect TypeScript code for this rule:
/* eslint no-useless-constructor: "error" */
class A {
public constructor() {}
}
针对该规则的 正确 TypeScript 代码示例:
🌐 Examples of correct TypeScript code for this rule:
/* eslint no-useless-constructor: "error" */
class A {
protected constructor() {}
}
class B extends A {
public constructor() {
super();
}
}
class C {
constructor(@decorated param) {}
}
选项
🌐 Options
此规则没有选项。
🌐 This rule has no options.
何时不使用
🌐 When Not To Use It
如果你不想收到有关不必要构造函数的通知,你可以安全地禁用此规则。
🌐 If you don’t want to be notified about unnecessary constructors, you can safely disable this rule.
版本
此规则是在 ESLint v2.0.0-beta.1 中引入。