yield all 中的 Redux saga typescript 类型错误

Redux saga typescript type error in yield all

我正在尝试来自 redux-saga 页面的非常简单的示例。

function* saga(): SagaIterator {
  yield takeEvery(T.GET_CREDENTIALS, getCredentials);
}

export default function* rootSaga() {
  yield all([
    saga(),
  ]);
}

但是我收到打字稿错误:

Argument of type 'IterableIterator<RootEffect | TakeEffect | 
ChannelTakeEffect<any> | PutEffect<any> | ChannelPutEf...' is not 
assignable to parameter of type '{ [key: string]: Effect; }'.
Index signature is missing in type 'IterableIterator<RootEffect | 
TakeEffect | ChannelTakeEffect<any> | PutEffect<any> | 
ChannelPutEf...'.

我做错了什么?感谢帮助

由于指向解决方案的链接显然被否决了,这就是解决方案:

export default function* rootSaga() {
  yield all([
    call(saga()),
  ]);
}

redux-saga 仓库中的例子大多采用这种形式:

export default function* rootSaga() {
    yield all([
        fork(saga1),
        fork(saga2),
        // ...
    ])
}

例如他们的real-world example。 当我们在它周围使用 all 时,我不确定使用 fork 而不是 call 的意义何在,因为单独的助手应该确保并行执行。