【发布时间】:2020-11-11 11:20:32
【问题描述】:
如何将 Typescript 配置为与 react-redux 和 redux-thunk 一起使用,以便 dispatch 返回被调度的 ThunkAction 的返回类型,而不是 ThunkAction<a,b,c,d,e>?
export function addPerson(
person: Person
): PersonActionTypes {
return {
type: ADD_PERSON,
person,
}
}
export const savePerson = (
person: Person
): ThunkAction<
Promise<Person>,
RootState,
unknown,
Action<string>
> => async (dispatch): Promise<Person> => {
const savedPerson = await PersonApi.save(person)
dispatch(addPerson(savedPerson))
return savedPerson
}
当我调度这个动作时,我希望它返回一个Promise<Person>,但调度返回ThunkAction<Promise<void>, RootState, unknown, Action<string>>
const savedPerson = await dispatch(savePerson(person))
// savedPerson is a ThunkAction as far as TypeScript is concerned but I would like it to be a Person.
【问题讨论】:
-
如果你这样做了
const savedPerson = await savePerson(person)(dispatch)
标签: reactjs typescript react-redux