作爲一個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