typescript - Returtype for en `yield call`


Jeg har lagt merke til at resultatet av en yield call-effekt blir typet som any når det brukes som

const data = yield call(f);

mens f er en () => Promise<number>-funksjon.

Går jeg glipp av noe, eller er det en redux-saga-typingsbegrensning?

Svar #1

Sjekk denne pågående tråden, tldr; det er en typescript-begrensning

Svar #2

I mellomtiden kan du bruke denne pakken i stedet: typed-redux-saga

Før

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);

Etter

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);

Relaterte artikler