2016-06-20 6 views
2

私は(あなたnpm i asyncがあれば1あなたがデフォルトで取得)、イテレータでのコールバックのための単一の(ブール)値をとるv1.5.2のためのドキュメントからasyncfilter機能を使用しようとしている:DefinitelyTyped型の定義が、私が望んでいるよりも新しいバージョン用である場合に行うべきことは?

イテレータ(item、callback) - arrの各項目に適用する真理テスト。イテレータにはコールバック(truthValue)が渡されます。このコールバックは、完了後にブール値引数で呼び出さなければなりません。

私はthe codeをチェックしましたが、このバージョンに該当します。

問題は、非同期v2のリリース候補が通常の(エラー、値)コールバックを取るためにこれを変更しているようです。この後者の定義は、DefinitelyTypedで非同期の型定義によって使用されているものです。

interface AsyncBooleanIterator<T> { (item: T, callback: (err: string, truthValue: boolean) => void): void; } 
// ... 
filter<T>(arr: T[], iterator: AsyncBooleanIterator<T>, callback?: AsyncResultArrayCallback<T>): any; 

今すぐどうなりますか?現在の型定義は非同期の将来であるため、私はPRを発行できません。しかし、私はv1.5.2のためにどのように仮定しているのかをasyncを使ってエラーに陥る。 DefinitelyTypedタイプのdefにアクセスできるバージョンはありますか?

私はTypescriptを使い始めており、マージングと呼ばれることについて聞いています。明らかに、AsyncBooleanIteratorの定義を1つのブール引数でコールバックすることもできるように拡張することは可能ですが、これを行う方法がわかりません。どんな助けもありがとう。

答えて

1

以前のバージョンの1つを使用して、履歴を表示し、適切なコミットを選択することができます。
あなたはこのような何かを行うことができ、両方のコールバック署名を許可する手動たい場合:

interface AsyncBooleanIterator<T> { 
    (item: T, callback: ((truthValue: boolean) => void) | ((err:string,truthValue:boolean) => void)): void; 
} 
+0

こんにちはアレクセイ!したがって、async.d.tsがfilterのv1.5.2定義を持っていて、プロジェクトで手動でダウンロードするとき、すべてのDefinitelyTypedの履歴でコミットを選択すると言っていますか?これは、人々がDefinitelyTypedで働く方法ですか? (私は[email protected]に切り替えました - より簡単です)。 AsyncBooleanIteratorを再読み込みすると、以前のバージョンに対応するためにその型を定義する方法が分かりました。しかし、どうすればそれを有効にすることができますか?それを私のファイルにドロップするだけではうまくいきません。どうすれば私のtsファイルからtypings/globals/async/index.d.tsにある型定義を拡張/マージすることができますか? – justin

+1

'typings.json'では、必要なコミットIDを指定することができます。例: '' ng-file-upload ': "github:DefinitelyTyped/DefinitelyTyped/ng-file-upload/ng-file-upload.d.ts#41f8573534b0fff88707d0a4cb870456b50cd43b" –

+0

ありがとうございました。 AsyncBooleanIteratorをDefinitelyTypedファイルの外側からどのように拡張できますか? (将来の参照用) – justin

関連する問題