Spec-Zone.ru › ESLint

no-this-before-super

Запретить использование this/super перед вызовом super() в конструкторах

✅ Рекомендуется

Использование конфигурации recommended из @eslint/js в файле конфигурации включает эту проверку

В конструкторе производных классов, если this/super используются до вызова super(), возникает ошибка ссылки.

Эта проверка проверяет ключевые слова this/super в конструкторах, а затем сообщает об использовании их перед вызовом super().

Подробное описание правила

Это правило предназначено для выявления использования ключевых слов this/super до вызова super().

Примеры

Примеры неправильного кода для этого правила:

Открыть в Playground
/*eslint no-this-before-super: "error"*/

class A1 extends B {
    constructor() {
        this.a = 0;
        super();
    }
}

class A2 extends B {
    constructor() {
        this.foo();
        super();
    }
}

class A3 extends B {
    constructor() {
        super.foo();
        super();
    }
}

class A4 extends B {
    constructor() {
        super(this.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.
    }
}

Когда не стоит использовать эту проверку

Если вы не хотите получать уведомления об использовании 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API