Redux Toolkit中缺少ThunkDispatch类型



我正在尝试将TypeScript和Redux工具包安装到现有项目中。然而,我遇到了一个问题,其中configureStore不提供ThunkDispatch类型,因此我不能在dispatch中使用createAsyncThunk动作。

为了验证这个理论,我创建了一个全新的create-react-app项目。它的store.ts文件有以下内容:

import { configureStore, ThunkAction, Action } from '@reduxjs/toolkit';
export const store = configureStore({
reducer: {
},
});
export type AppDispatch = typeof store.dispatch;
export type RootState = ReturnType<typeof store.getState>;
export type AppThunk<ReturnType = void> = ThunkAction<
ReturnType,
RootState,
unknown,
Action<string>
>;

AppDispatch具有以下类型:type AppDispatch = ThunkDispatch<any, undefined, AnyAction> & Dispatch<AnyAction>

然而,在我现有的项目中,我有以下内容:

import { configureStore } from "@reduxjs/toolkit";
export const store = configureStore({
reducer: {},
});
export type AppDispatch = typeof store.dispatch;
export type RootState = ReturnType<typeof store.getState>;

AppDispatch的类型只是type AppDispatch = Dispatch<AnyAction>

这个项目有很多依赖项,但我有以下几个:

"@reduxjs/toolkit": "^1.8.1",
"react-redux": "^8.0.1",
"typescript": "^4.6.4",

我没有@types/react-redux,因为8.0.0的发行说明似乎表明,由于项目现在是在TypeScript中,这应该不再是必要的。我已经查看了我的package-lock.json,据我所知,没有竞争的redux版本,所以我很困惑。

为什么我错过了ThunkDispatch类型?

如果您的包。Json明确声明redux,请确保将其更新到至少4.0.0。

相关内容

  • 没有找到相关文章

最新更新