У меня есть старый код, который создает функцию.Примерно так:
function oldFunction() {
this.name = '';
}
oldFunction.prototype.setName = function(name){this.name = name};
module.exports = oldFunction;
Мой «новый» код использует эту функцию следующим образом:
import { oldFunction } from 'old-function';
export class NewClass extends oldFunction {
constructor(name) {
super();
this.setName(name);
}
}
Использование NewClass
, например так: const n = new NewClass();
генерирует ошибку:
error TS2339: Property 'setName' does not exist on type 'NewClass'.
Тесты пройдены и он компилируется, но эта ошибка сохраняется.Это можно исправить с помощью index signature
внутри класса - но это скорее взлом, чем решение.
Почему это происходит?Это ошибка TS?