EN
TypeScript - interface constructor
11
points
In TypeScript interface with a constructor can not be implemeneted by any class, but it is possible use constructor interface in following way.
Constructor interface example
interface ISquare {
getName() : string;
// other method declarations...
}
interface ISquareConstructor {
new (name : string) : ISquare;
}
class LocalSquare implements ISquare {
public constructor(private name : string) {
// nothing here...
}
public getName() : string {
return this.name;
}
// other method definitions...
}
function createSquare(builder : ISquareConstructor, name : string) : ISquare {
// ISquareConstructor -> new (name : string) : ISquare
return new builder(name);
}
let square = createSquare(LocalSquare, 'Square');
console.log(square.getName());
// other method usage...
Output:
Square
Run it online here.