noInvalidConstructorSuper (since v10.0.0)
Prevents the incorrect use of super()
inside classes. It also checks whether a call super()
is missing from classes that extends other constructors.
Examples
Invalid
class A {
constructor() {
super();
}
}
nursery/noInvalidConstructorSuper.js:3:9 lint/nursery/noInvalidConstructorSuper ━━━━━━━━━━━━━━━━━━━━
✖ This class should not have a super() call. You should remove it.
1 │ class A {
2 │ constructor() {
> 3 │ super();
│ ^^^^^
4 │ }
5 │ }
class A extends undefined {
constructor() {
super();
}
}
nursery/noInvalidConstructorSuper.js:3:9 lint/nursery/noInvalidConstructorSuper ━━━━━━━━━━━━━━━━━━━━
✖ This class calls super(), but the class extends from a non-constructor.
1 │ class A extends undefined {
2 │ constructor() {
> 3 │ super();
│ ^^^^^
4 │ }
5 │ }
ℹ This is where the non-constructor is used.
> 1 │ class A extends undefined {
│ ^^^^^^^^^
2 │ constructor() {
3 │ super();
Valid
export default class A extends B {
constructor() {
super();
}
}
export class A {
constructor() {}
}