no-this-before-super
禁止在构造函数中在 super()
调用之前使用 this
/super
✅ 推荐
在配置文件中使用 @eslint/js
中的 recommended
配置启用此规则
在派生类的构造函数中,如果在 super()
调用之前使用 this
/super
,则会引发引用错误。
此规则检查构造函数中的 this
/super
关键字,然后报告 super()
之前的那些。
规则详情
此规则旨在标记 super()
调用之前的 this
/super
关键字。
示例
此规则的错误代码示例
在 Playground 中打开
/*eslint no-this-before-super: "error"*/
class A1 extends B {
constructor() {
.a = 0;
super();
}
}
class A2 extends B {
constructor() {
.foo();
super();
}
}
class A3 extends B {
constructor() {
.foo();
super();
}
}
class A4 extends B {
constructor() {
super(.foo());
}
}
此规则的正确代码示例
在 Playground 中打开
/*eslint no-this-before-super: "error"*/
class A1 {
constructor() {
this.a = 0; // OK, this class doesn't have an `extends` clause.
}
}
class A2 extends B {
constructor() {
super();
this.a = 0; // OK, this is after `super()`.
}
}
class A3 extends B {
foo() {
this.a = 0; // OK. this is not in a constructor.
}
}
何时不使用
如果您不想在使用构造函数中 super()
之前的 this
/super
时收到通知,您可以安全地禁用此规则。
由 TypeScript 处理
当使用 TypeScript 时,禁用此规则是安全的,因为 TypeScript 的编译器会强制执行此检查。
版本
此规则在 ESLint v0.24.0 中引入。