Типизация Redux

Начал делать типизацию своего redux и столкнулся с такой проблемой, а именно типизация useSelector

Вот хук, который я создаю:

import { TypedUseSelectorHook, useSelector } from 'react-redux'
import { RootState } from '../store/create-reducer'

export const UseTypedSelector: TypedUseSelectorHook<RootState> = useSelector

И он мне возвращает ошибку:введите сюда описание изображения Как решить эту проблему? Уже второй день не могу тронутся с мертвой точки, а использывать useSelector((state:any)=>state?.SESSION) не выход.

Вот мой стор:

create-reducer:

import { combineReducers } from 'redux'

import { STATE } from '../session/types'
import { reducer } from '../session/reducers'

const rootReducer = (asyncReducers: object) => {
  return (
    combineReducers({
      ...asyncReducers,
      [STATE]: reducer,
    })
  )
}

export default rootReducer

export type RootState = ReturnType<typeof rootReducer>

create-store:

import { applyMiddleware, compose, createStore } from 'redux'
import thunk from 'redux-thunk'

import persistStore from './persist-store'
import persistReducer from './persist-reducer'

const store = (initialState = {}) => {
  const middlewares = [thunk]
  const enhancers: Array<any> = []

  const store = createStore(
    persistReducer({}),
    initialState,
    compose(applyMiddleware(...middlewares), ...enhancers),
  )

  const persistor = persistStore(store)

  return { store, persistor }
}

export default store

index:

export { default as createReducer } from './create-reducer'
export { default as createStore } from './create-store'
export { default as persistReducer } from './persist-reducer'

persist-reducer:

import { persistReducer } from 'redux-persist'
import storage from 'redux-persist/lib/storage'
import createReducer from './create-reducer'

const persistConfig = { key: 'myproject', storage, whitelist: ['session'] }

const reducer = (asyncReducers: any) => persistReducer(persistConfig, createReducer(asyncReducers))

export default reducer

persist-store:

import { persistStore } from 'redux-persist'

const store = (store: any) => persistStore(store, null, () => {})

export default store

Ответы (0 шт):