我有一個庫jsforce的定義文件,它有自己的es6 promise實現。 jsforce.Promise本身只是es6-promise的擴展版本,並添加了一些額外的方法。我正試圖在我的jsforce.d.ts
文件中複製這個文件,並且正在打一個路障。在打字稿定義文件中擴展和重命名導入
這裏是我的jsforce.d.ts
相關部分:
/// <reference path="globals/es6-promise/index" />
declare module jsforce {
interface JsforcePromise<T> extends Promise<T> {
defer(): JsforcePromise.Deferred;
fail(onRejected: JsforcePromise.RejectedCallback<T>): JsforcePromise<T>;
thenCall(callback?: Callback<T>): JsforcePromise<T>;
}
export module JsforcePromise {
interface PromiseCallback<T> {
}
interface FulfilledCallback<T, T2> {
}
interface RejectedCallback<T> {
}
interface Deferred {
}
}
interface JSForce {
...
Promise: JsforcePromise<any>;
...
}
}
declare module "jsforce" {
var jsforce: jsforce.JSForce;
export = jsforce;
}
,並承諾建立:
let p = new jsforce.Promise<any>((res) => {
console.log(res);
}, (err) => {
console.error(err);
});