我有一个Node.js库使用承诺,其TypeScript声明使用ES6 Promise
,即使库本身可以定制使用任何承诺库。TypeScript覆盖ES6承诺与蓝鸟
所以,我没有问题在Bluebird
传入该库,以便它可以使用它。
问题是如何使蓝鸟承诺界面在声明级别可见,因为我的库只通过ES6 Promise
声明其接口。
有没有办法让编译器意识到我正在使用不同的Promise协议,而不必修改库本身?
当然,后者当然是问题所在,因为如果我可以修改图书馆就没有问题了。
而如果它是任何有助于了解该库是什么样的,让我们利用这个简单的界面,从中:
interface Protocol {
methodName(param1:string, param2:number):Promise<Object[]>
}
,然后乘其大小的1000倍。
所以,我不能用我自己的文件伪造协议。我需要弄清楚如何告诉编译器Promise
不是默认的ES6,而是Bluebird TypeScript提供的。
您可以包含自己的定义文件来覆盖库的定义。你是这个意思吗? –
@MikeMcCaughan我不能用我自己的文件覆盖整个库,库的界面很大。 –
那么,你*可以*,你只是不想;)。我能想到的唯一的另一种方式是'导入Promise = bluebird.Promise'(或[无论语法是什么](https://github.com/Microsoft/TypeScript-Handbook/blob/master/pages/Namespaces% 20和%20Modules.md))位于所有库定义文件的顶部。 –