Spec-Zone.ru › ESLint

no-useless-constructor

Запрещает ненужные конструкторы

💡 есть предложения

Некоторые проблемы, о которых сообщает это правило, можно исправить вручную с помощью предложений редактора

В ES2015 для класса предусмотрен конструктор по умолчанию, если он не указан. Поэтому нет необходимости объявлять пустой конструктор или конструктор, который просто вызывает конструктор родительского класса, как в следующих примерах:

class A {
    constructor () {
    }
}

class B extends A {
    constructor (value) {
      super(value);
    }
}

Описание правила

Это правило отмечает конструкторы классов, которые можно безопасно удалить, не изменив поведение класса.

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

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

class A {
    constructor () {
    }
}

class B extends A {
    constructor (...args) {
      super(...args);
    }
}

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

Открыть в Playground
/*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.

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

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

class A {
    public constructor() {}
}

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

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

class A {
    protected constructor() {}
}

class B extends A {
    public constructor() {
        super();
    }
}

class C {
    constructor(@decorated param) {}
}

Параметры

У этого правила нет параметров.

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

Если вы не хотите получать уведомления о ненужных конструкторах, это правило можно безопасно отключить.

Версия

Это правило появилось в ESLint v2.0.0-beta.1.

Ресурсы

  • Исходный код правила
  • Исходный код тестов

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-useless-constructor

Spec-Zone.ru

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