Declare a constructor inside an interface
, and you will get a simple method with the name "constructor". The same thing will happen if
you create a new
method inside the interface
: you’ll get a simple method named "new".
Instead, the intent was probably to specify that the type did not originate from a TypeScript file. In such cases, just use the declare
class
syntax.
Noncompliant Code Example
interface TypeDeclaredElsewhere {
someMethod(): number;
new(b: boolean): TypeDeclaredElsewhere; // Noncompliant
constructor(b: boolean): void; // Noncompliant
}
Compliant Solution
declare class TypeDeclaredElsewhere {
someMethod(): number;
constructor(b: boolean);
}