Невозможно использовать 'new' с выражением, типу которого не хватает вызова или конструкции signature.ts

-1

Я нашел это, но это не помогло мне в этом случае: не может использовать 'new' с выражением, тип которого не имеет подписи вызова или конструкции

У меня похожая проблема. JavaScript имеет следующее:

public clone(data) {
    return new this.constructor({
        ...this.data,
        ...data,
    });
}

Это помечено как ошибка: нельзя использовать "new" с выражением, тип которого не содержит вызов или создать signature.ts(2351)

Как я могу переписать в TypeScript?

  • 0
    подумайте о том, чего вы пытаетесь достичь. Вы хотите новый конструктор или новый экземпляр класса? Как вы обычно создаете экземпляры классов?
  • 2
    «У меня похожая проблема» Похоже на что?
Показать ещё 3 комментария

2 ответа

1
Лучший ответ

Я бы явно отключил проверку типов здесь:

 public clone(data): ThisClass {
   return new (this.constructor as any)({
    ...this.data,
    ...data,
  });
}
0

Предполагая, что класс называется MyClass,

public clone(data) {
    return new MyClass({
        ...this.data,
        ...data,
    });
}

должно сработать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню