There are situations where super() must be invoked and situations where super() cannot be invoked.
The basic rule is: a constructor in a non-derived class cannot invoke super(); a constructor in a derived class must invoke
super().
Furthermore:
super() must be invoked before the this and super keywords can be used. super() must be invoked with the same number of arguments as the base class' constructor. super() can only be invoked in a constructor - not in any other method. super() cannot be invoked multiple times in the same constructor. Some issues are not raised if the base class is not defined in the same file as the current class. This is a known limitation for this rule.
class Dog extends Animal {
constructor(name) {
super();
this.name = name;
super(); // Noncompliant
super.doSomething();
}
}
class Dog extends Animal {
constructor(name) {
super();
this.name = name;
super.doSomething();
}
}