我正在使用外部
JS
库,其中使用 Object.defineProperties(ClassName.prototype, ...)
在类原型上定义其他属性。
由于某种原因,Typescript 无法识别这些属性(可以很好地识别构造函数中定义的属性)。
这个库的打字稿定义非常差(缺少许多类和属性),所以我无法使用它。
有没有办法告诉
TS
这些属性实际上存在于这个特定的类上?
您只需声明具有相同名称的接口即可“扩展”类或接口定义。例如:
class BadClass {
constructor(public name: string) {}
public getName() {
return this.name;
}
}
// This can go in a d.ts file
interface BadClass {
address: string;
}
function test() {
const badClass = new BadClass('name');
badClass.address = 'address';
console.log(badClass.getName()); // This works fine.
console.log(badClass.address); //
}