redux Saga и Axios - как задавать тип ответа API Typescript для yield call
Primary tabs
Пусть тип ответа задан так:
export type LoginResponse = { message: string }
При этом обращаемся к API мы как-то так:
export async function loginUser(username: string, password: string) { const responsePromise = axios.post<LoginResponse>( AuthHost.getLoginUrl(), { username, password }, { withCredentials: true } ) console.log('responsePromise' , responsePromise); return responsePromise; }
Тогда задать тип для yield call в саге можно через удобную обертку AxiosResponse:
AxiosResponse
Например:
function* login({payload}: PayloadAction<LoginReguestData>) { const loginResponse: AxiosResponse<LoginResponse> = yield call(loginUser, payload.login, payload.password); console.log('loginResponse', loginResponse); } export function* loginRootSaga() { yield takeEvery(actions.submitLoginForm, login); }
- Log in to post comments
- 733 reads