Relevant line

如果界面如下:

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

...而且 S 显然没有使用,那为什么会出现呢?

我注意到 S 在其他地方用于“存储”相关的东西,但如果它没有在这个界面中使用,我认为它不应该在那里。

最佳答案

你是对的,它本身似乎没有多大意义。

我的猜测是他们这样做是为了确保在 middleware 中返回类似的调度函数。

在像 redux-thunk 这样的中间件的情况下,new dispatch function 确实使用了 <S> 参数,尽管我不确定在这种情况下默认的参数是否会重要。

关于javascript - 为什么 Redux.js "Dispatch"TypeScript 接口(interface)有模板参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42381712/

10-12 12:25