作为一个TypeScript和Redux-thunk用户,我很好奇由redux-saga提供的好处。我想尝试一下,但担心功能和类型安全性的明显损失。Redux Sagas,TypeScript和调用?
如果我这样做:
function* invalidateReddit(): SagaIterator {
while (true) {
const {reddit} = yield take(actions.INVALIDATE_REDDIT)
yield call(fetchPosts, reddit)
}
编译器将无法查看调用fetchPosts
。所以,如果我改变了签名不包括参数...
function fetchPosts() {
// anything here...
}
的invalidateReddit
功能,这取决于fetchPosts
,应该编译失败,但它不会因为call
评估我的代码我。在不牺牲型号安全性的情况下使用这种方法是否有既定模式?
更新:在https://github.com/redux-saga/redux-saga/pull/740公关看起来像它试图解决这个问题。我将保持开放状态,直到解决方案关闭。
似乎更新提到的公关不起作用。我试过最新的分支代码,它是'任何'类型的。这可能是TypeScript本身的问题,但看起来他们并没有在'yield'语句中启用自定义类型。 – Jurosh