Store.ts
1 import { configureStore } from "@reduxjs/toolkit"; 2 3 import { TypedUseSelectorHook, useDispatch, useSelector } from "react-redux"; 4 import RootReducer from "./RootReducer"; 5 6 const store = configureStore({ 7 reducer: RootReducer, 8 middleware: (getDefaultMiddleware) => 9 getDefaultMiddleware({ 10 serializableCheck: false, 11 }), 12 }); 13 // Infer the `RootState` and `AppDispatch` types from the store itself 14 export type RootState = ReturnType<typeof store.getState>; 15 // Selector Typed Hook 16 export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector; 17 // Inferred type: {posts: PostsState, comments: CommentsState, users: UsersState} 18 export type AppDispatch = typeof store.dispatch; 19 // Dispatch Typed Hook 20 export const useAppDispatch: () => AppDispatch = useDispatch; 21 22 export default store;