私は、ライブラリ「jsforce」の定義ファイルを持っています。これは、それが独自のes6約束の実装を持っています。 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);
});