Spec-Zone.ru › ESLint

конструктор-супер

Требовать super() вызовы в конструкторах

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

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

Конструкторы производных классов должны вызывать super(). Конструкторы непроизводных классов не должны вызывать super(). В противном случае движок JavaScript поднимет ошибку во время выполнения.

Это правило проверяет, есть ли допустимый super() вызов.

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

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

Это синтаксическая ошибка, так как в классе нет extends предложения:

class A {
    constructor() {
        super();
    }
}

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

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

class A extends B {
    constructor() { }  // Would throw a ReferenceError.
}

// Classes which inherits from a non constructor are always problems.
class C extends null {
    constructor() {
        super();  // Would throw a TypeError.
    }
}

class D extends null {
    constructor() { }  // Would throw a ReferenceError.
}

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

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

class A {
    constructor() { }
}

class B extends C {
    constructor() {
        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/constructor-super

Spec-Zone.ru

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