导入函数并在原型上添加setName时出现错误“属性'setName'在类型上不存在”,为什么?

时间:2019-01-28 13:02:48

标签: javascript typescript class prototype

我有一个创建函数的旧代码。像这样:

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);
  }
}

像这样使用NewClassconst n = new NewClass();会产生错误:

error TS2339: Property 'setName' does not exist on type 'NewClass'.

测试通过并编译,但是此错误仍然存​​在。 可以通过在类中使用index signature来解决此问题-但这不是解决方案,而是更多技巧。

为什么会这样?这是TS错误吗?

0 个答案:

没有答案