I've noticed that the result of a yield call
effect is typed as any
when used as
const data = yield call(f);
while f
is a () => Promise<number>
function.
Am I missing something or is it a redux-saga
typings limitation?
Check this ongoing thread, tldr; it's a typescript limitation
In the meantime, you can use this package instead: typed-redux-saga
Before
import { call, all } from "redux-saga/effects";
...
// Api.fetchUser return User
// but user has type any
const user = yield call(Api.fetchUser, action.payload.userId);
After
import { call, all } from "typed-redux-saga";
...
// user now has the correct type User
// NOTE: it's yield*, not yield
const user = yield* call(Api.fetchUser, action.payload.userId);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With