Avoid constructors that do nothing or only call super

이 페이지는 아직 영어로 제공되지 않습니다. 번역 작업 중입니다.
현재 번역 프로젝트에 대한 질문이나 피드백이 있으신 경우 언제든지 연락주시기 바랍니다.

Metadata

ID: javascript-best-practices/no-useless-constructor

Language: JavaScript

Severity: Warning

Category: Best Practices

Description

This rule is designed to flag constructors that either do nothing or only call the super function. These constructors are unnecessary and can be safely removed. In JavaScript, if a class extends another class and does not have a constructor, it automatically calls the super function with all the arguments it receives.

Unnecessary constructors can lead to confusion for other developers who may be reading or maintaining your code. They might spend time trying to figure out why a constructor is there when it doesn’t need to be, or they might assume that the constructor is doing something important when it’s not. To follow this rule and write good, clean code, you should only write a constructor if it’s doing something other than just calling super.

Non-Compliant Code Examples

class Foo {
    constructor () {}
}

class Bar extends Foo {
    constructor (...args) {
      super(...args);
    }
}

Compliant Code Examples

class Foo {}

class Bar {
    constructor () {
        doComputation();
    }
}

class Baz extends Foo {
    constructor() {
        super('baz arg');
    }
}

class Quux extends Foo {
    constructor() {
        super();
        doComputation();
    }
}
PREVIEWING: aliciascott/DOCS-9725-Cloudcraft