partyzanx
@partyzanx

Как типизировать new функции?

Ссылка на песочницу

Прошу не предлагать решение классами, так как мне интересно как типизировать именно этот пример в рамках обучения

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)
  • Вопрос задан
  • 294 просмотра
Решения вопроса 1
WblCHA
@WblCHA
const Welcome = function(this: IPerson,name: string) {
    this.name=name;
} as unknown as PersonConstructor
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы