有没有办法告诉 TypeScript 外部类型具有附加属性?

问题描述 投票:0回答:1

我正在使用外部

JS
库,其中使用
Object.defineProperties(ClassName.prototype, ...)
在类原型上定义其他属性。

由于某种原因,Typescript 无法识别这些属性(可以很好地识别构造函数中定义的属性)。

这个库的打字稿定义非常差(缺少许多类和属性),所以我无法使用它。

有没有办法告诉

TS
这些属性实际上存在于这个特定的类上?

javascript typescript
1个回答
0
投票

您只需声明具有相同名称的接口即可“扩展”类或接口定义。例如:

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);   // 
}
© www.soinside.com 2019 - 2024. All rights reserved.