2017-03-24 18 views
0

既存のd.tsファイルにカスタムオーバーロードを追加することはできますか?Typescript定義ファイルカスタムオーバーロード

私はBluebird Promise.allを使用していて、6個のアイテムの配列を使用しています。定義ファイルは、5つの項目をカバー:

static all<T1, T2, T3, T4, T5>(values: [Bluebird.Thenable<T1> | T1, Bluebird.Thenable<T2> | T2, Bluebird.Thenable<T3> | T3, Bluebird.Thenable<T4> | T4, Bluebird.Thenable<T5> | T5]): Bluebird<[T1, T2, T3, T4, T5]>; 
static all<T1, T2, T3, T4>(values: [Bluebird.Thenable<T1> | T1, Bluebird.Thenable<T2> | T2, Bluebird.Thenable<T3> | T3, Bluebird.Thenable<T4> | T4]): Bluebird<[T1, T2, T3, T4]>; 
static all<T1, T2, T3>(values: [Bluebird.Thenable<T1> | T1, Bluebird.Thenable<T2> | T2, Bluebird.Thenable<T3> | T3]): Bluebird<[T1, T2, T3]>; 
static all<T1, T2>(values: [Bluebird.Thenable<T1> | T1, Bluebird.Thenable<T2> | T2]): Bluebird<[T1, T2]>; 
static all<T1>(values: [Bluebird.Thenable<T1> | T1]): Bluebird<[T1]>; 

私はプル要求は私のシングルユースケースのために必要であると私はElasticBeanstalkにアップロードする際に、コンパイルが失敗しないように、定義ファイルを追加したいとは思いません。

私は必要なのは私のプロジェクトのために

static all<T1, T2, T3, T4, T5, T6>(values: ... 

を追加する機能です。

; Typescriptにこの「エラー」を無視させることはできますか?

答えて

0

私が知る限り、宣言をマージする方法はありません。 私は同じ問題を抱えていると私が思い付くことができる唯一のソリューションは、このタイプを作成することです:

type TPromiseAll6 = <T1, T2, T3, T4, T5, T6>(values: [ 
    Promise.Thenable<T1>, 
    Promise.Thenable<T2>, 
    Promise.Thenable<T3>, 
    Promise.Thenable<T4>, 
    Promise.Thenable<T5>, 
    Promise.Thenable<T6> 
]) => Promise<[T1, T2, T3, T4, T5, T6]>; 

そして、あなたの呼び出しは次のようになります。

(Promise.all as TPromiseAll6)([...]); 

をこのタイプで動作します推論も同様です。

関連する問題