打字稿第三方定义文件-类丢失的方法定义-如何扩展定义?

时间:2018-11-02 15:14:15

标签: typescript

以下类定义文件: https://github.com/Bitcoin-com/bitbox-javascript-sdk/blob/master/lib/HDNode.d.ts

在此处缺少createAccount()方法: https://github.com/Bitcoin-com/bitbox-javascript-sdk/blob/master/lib/HDNode.js#L144

我正在尝试使用createAccount()方法,并且打字稿编译器给我一个错误。我希望能够克服此错误,同时保留其余的类定义。我该怎么办?

谢谢。

1 个答案:

答案 0 :(得分:2)

通常的想法是使用module augmentation,它看起来像这样:

declare module "bitbox-javascript-sdk/lib/HDNode" { 
  interface HDNode { 
    createAccount(hdNodes: any): any;
  }
}

(要使其成为模块扩充而不是模块声明,它必须位于另一个模块内,即,将其放在具有顶级导入或导出功能的文件中,或将其包装在declare module "dummy" { }中。 )

我不确定正确的参数和返回类型,但是如果您知道使用createAccount的正确代码模式,则将参数和返回类型声明为any至少可以使您不受阻碍。 (我认为现有的方法声明是错误的。它们很多成对出现,而没有类型为HDNode的参数,但是从源头来看,似乎总是需要该参数,而实际类型不是HDNode的{​​{1}}类,但在JavaScript code中被称为bitbox-javascript-sdk。)