JavaScript and TypeScript classes may define a constructor
method that is executed when a new instance is created. TypeScript allows
interfaces that describe a static class object to define a new()
method. Using these terms to name methods in other contexts can lead to
confusion and make the code unclear and harder to understand.
This rule reports when:
- A class defines a method named
new
. The new
keyword is used to create new instances of the class. If a method with
the same name is defined, it can be unclear whether the method is intended to create new instances or perform some other action.
- An interface defines a method named
constructor
. The constructor method is used to define the constructor function for a class
that implements the interface. If a method with the same name is defined in the interface, it can be unclear whether the method is intended to
define the constructor function or perform some other action.
interface I {
constructor(): void; // Noncompliant
new(): I;
}
declare class C {
constructor();
new(): C; // Noncompliant
}
Do not define methods named constructor
on TypeScript interfaces. Similarly, avoid defining class methods called new
.
interface I {
new(): I;
}
declare class C {
constructor();
}