noConstructorReturn
Diagnostic Category: lint/correctness/noConstructorReturn
Since: v1.0.0
Sources:
- Same as:
no-constructor-return
Disallow returning a value from a constructor
.
Returning a value from a constructor
of a class is a possible error.
Forbidding this pattern prevents errors resulting from unfamiliarity with JavaScript or a copy-paste error.
Only returning without a value is allowed, as it’s a control flow statement.
Examples
Section titled ExamplesInvalid
Section titled Invalidcode-block.js:3:9 lint/correctness/noConstructorReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ The constructor should not return a value.
1 │ class A {
2 │ constructor() {
> 3 │ return 0;
│ ^^^^^^^^^
4 │ }
5 │ }
ℹ The constructor is here:
1 │ class A {
> 2 │ constructor() {
│ ^^^^^^^^^^^^^^^
> 3 │ return 0;
> 4 │ }
│ ^
5 │ }
6 │
ℹ Returning a value from a constructor may confuse users of the class.
Valid
Section titled ValidUsing this rule in combination with the singleton pattern
Section titled Using this rule in combination with the singleton patternSome people implement the singleton pattern in JavaScript by returning an existing instance from the constructor, which would conflict with this rule.
Instead, we advise to follow one of the suggestions described in this blog post: https://arendjr.nl/blog/2024/11/singletons-in-javascript/