]> git.proxmox.com Git - pve-eslint.git/blob - eslint/docs/src/rules/constructor-super.md
import 8.23.1 source
[pve-eslint.git] / eslint / docs / src / rules / constructor-super.md
1 ---
2 title: constructor-super
3 layout: doc
4 rule_type: problem
5 ---
6
7 Constructors of derived classes must call `super()`.
8 Constructors of non derived classes must not call `super()`.
9 If this is not observed, the JavaScript engine will raise a runtime error.
10
11 This rule checks whether or not there is a valid `super()` call.
12
13 ## Rule Details
14
15 This rule is aimed to flag invalid/missing `super()` calls.
16
17 Examples of **incorrect** code for this rule:
18
19 :::incorrect
20
21 ```js
22 /*eslint constructor-super: "error"*/
23 /*eslint-env es6*/
24
25 class A {
26 constructor() {
27 super(); // This is a SyntaxError.
28 }
29 }
30
31 class A extends B {
32 constructor() { } // Would throw a ReferenceError.
33 }
34
35 // Classes which inherits from a non constructor are always problems.
36 class A extends null {
37 constructor() {
38 super(); // Would throw a TypeError.
39 }
40 }
41
42 class A extends null {
43 constructor() { } // Would throw a ReferenceError.
44 }
45 ```
46
47 :::
48
49 Examples of **correct** code for this rule:
50
51 :::correct
52
53 ```js
54 /*eslint constructor-super: "error"*/
55 /*eslint-env es6*/
56
57 class A {
58 constructor() { }
59 }
60
61 class A extends B {
62 constructor() {
63 super();
64 }
65 }
66 ```
67
68 :::
69
70 ## When Not To Use It
71
72 If you don't want to be notified about invalid/missing `super()` callings in constructors, you can safely disable this rule.