Ссылка на песочницу
Прошу не предлагать решение классами, так как мне интересно как типизировать именно этот пример в рамках обучения
interface IPerson {
name: string;
sayHello(): string;
}
const Welcome = function (this: IPerson, name: string) {
this.name = name;
}
Welcome.prototype.sayHello = function () {
return "Hello, " + this.name + "!";
};
interface PersonConstructor {
new(name: string): IPerson;
}
var welcome = new Welcome("John");
console.log(welcome.sayHello());
Выдаёт ошибку 'new' expression, whose target lacks a construct signature, implicitly has an 'any' type.(7009)