no-this-before-super
Запретить использование this/super перед вызовом super() в конструкторах
Использование конфигурации recommended из @eslint/js в файле конфигурации включает эту проверку
В конструкторе производных классов, если this/super используются до вызова super(), возникает ошибка ссылки.
Эта проверка проверяет ключевые слова this/super в конструкторах, а затем сообщает об использовании их перед вызовом super().
Подробное описание правила
Это правило предназначено для выявления использования ключевых слов this/super до вызова super().
Примеры
Примеры неправильного кода для этого правила:
/*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());
}
}
Примеры правильного кода для этого правила:
/*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.
}
}
Когда не стоит использовать эту проверку
Если вы не хотите получать уведомления об использовании this/super до super() в конструкторах, вы можете безопасно отключить эту проверку.
Обработка TypeScript
При использовании TypeScript можно безопасно отключить эту проверку, поскольку компилятор TypeScript выполняет эту проверку.
Версия
Это правило было добавлено в ESLint v0.24.0.
Ссылки
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-this-before-super