2017-02-22 7 views
2

Relevant line。次のようにインターフェイスがある場合はRedux.js "Dispatch" TypeScriptインターフェイスにテンプレートパラメータがあるのはなぜですか?

export interface Dispatch<S> { 
    <A extends Action>(action: A): A; 
} 

...とSが明確に使用されていない、そしてなぜそれがありますか?

私は、Sが「ストア」関連のもので使用されていることに気づきましたが、このインターフェイスで使用されていない場合は、そこにあるはずはありません。

+1

https://github.com/reactjs/redux/pull/1537で、そのインターフェイスとその理由を追加したプルリクエストが表示されます。 – Lucas

答えて

0

ステートタイプパラメータSを持つと、ミドルウェアは タイピングでより正確になります。たとえば、サンク関数はディスパッチと getState():Sを受け取ります。したがって、Sを指定しないと型が正しくない可能性があります。クレジットは、その源を見つけるための@Lucasに行く https://github.com/Igorbek/redux/blob/ts-def-improv/test/typescript/dispatch.ts#L9-L16

Source

の下に、ここで例にこのの を参照してください。

1

あなたはそうです、それはそれ自体では、それほど意味がないようです。

私は、ディスパッチ機能がmiddlewareに返されるようにしていると思います。

redux-thunkのようなミドルウェアの場合、new dispatch function<S>パラメータを使用しますが、この場合はデフォルト値が問題にならないかどうかはわかりません。

関連する問題