JS.BASE.NO.USELESS.CONSTRUCTOR

Disallow unnecessary constructors

ES2015 provides a default class constructor if one is not specified. As such, it is unnecessary to provide an empty constructor or one that simply delegates into its parent class, as in the following examples:

Copy
class A {
    constructor () {
    }
}

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

Rule Details

This rule flags class constructors that can be safely removed without changing how the class works.

Examples

Examples of incorrect code for this rule:

Copy
/*eslint no-useless-constructor: "error"*/
/*eslint-env es6*/

class A {
    constructor () {
    }
}

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

Examples of correct code for this rule:

Copy
/*eslint no-useless-constructor: "error"*/

class A { }

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

class B extends A {
    constructor() {
        super('foo');
    }
}

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

When Not To Use It

If you don't want to be notified about unnecessary constructors, you can safely disable this rule.

The content on this page is adapted from the ESLint User Guide. Copyright © OpenJS Foundation and other contributors, www.openjsf.org. All rights reserved. https://eslint.org/docs/rules/