我有一个创建函数的旧代码。像这样:
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错误吗?