redux-injectors
redux-injectors copied to clipboard
Typing issues with latest @reduxjs/toolkit
Updating to @reduxjs/toolkit 1.6.0 gives the following type errors with the following code :
import { configureStore, getDefaultMiddleware } from '@reduxjs/toolkit'
import { createInjectorsEnhancer } from 'redux-injectors'
// ...
const enhancers = [
createInjectorsEnhancer({
createReducer,
runSaga,
}),
]
const store = configureStore({
reducer: createReducer(),
middleware: [...getDefaultMiddleware(), ...middlewares],
devTools:
/* istanbul ignore next line */
process.env.NODE_ENV !== 'production' || process.env.PUBLIC_URL.length > 0,
enhancers,
preloadedState: state,
})
Type 'StoreEnhancer<{}, {}>[]' is not assignable to type 'StoreEnhancer<{}, {}>[] | ConfigureEnhancersCallback | undefined'.
Type 'import("/home/esya/Git/oasis-wallet/node_modules/redux/index").StoreEnhancer<{}, {}>[]' is not assignable to type 'import("/home/esya/Git/oasis-wallet/node_modules/@reduxjs/toolkit/node_modules/redux/index").StoreEnhancer<{}, {}>[]'.
Type 'import("/home/esya/Git/oasis-wallet/node_modules/redux/index").StoreEnhancer<{}, {}>' is not assignable to type 'import("/home/esya/Git/oasis-wallet/node_modules/@reduxjs/toolkit/node_modules/redux/index").StoreEnhancer<{}, {}>'.
Types of parameters 'next' and 'next' are incompatible.
Types of parameters 'preloadedState' and 'preloadedState' are incompatible.
Type 'import("/home/esya/Git/oasis-wallet/node_modules/redux/index").PreloadedState<S> | undefined' is not assignable to type 'import("/home/esya/Git/oasis-wallet/node_modules/@reduxjs/toolkit/node_modules/redux/index").PreloadedState<S> | undefined'.
Type 'PreloadedState<S>' is not assignable to type 'PreloadedState<S> | undefined'.
Type '(S extends CombinedState<infer S1> ? { [K in keyof S1]?: (S1[K] extends object ? PreloadedState<S1[K]> : S1[K]) | undefined; } : never) | { [K in keyof S]: S[K] extends object ? PreloadedState<...> : S[K]; }' is not assignable to type 'PreloadedState<S> | undefined'.
Type 'S extends CombinedState<infer S1> ? { [K in keyof S1]?: (S1[K] extends object ? PreloadedState<S1[K]> : S1[K]) | undefined; } : never' is not assignable to type 'PreloadedState<S> | undefined'.
Type '{}' is not assignable to type 'PreloadedState<S>'.
Type 'S extends CombinedState<infer S1> ? { [K in keyof S1]?: (S1[K] extends object ? PreloadedState<S1[K]> : S1[K]) | undefined; } : never' is not assignable to type 'PreloadedState<S>'.
Type 'import("/home/esya/Git/oasis-wallet/node_modules/redux/index").PreloadedState<S>' is not assignable to type 'import("/home/esya/Git/oasis-wallet/node_modules/@reduxjs/toolkit/node_modules/redux/index").PreloadedState<S>'.
Type '(S extends CombinedState<infer S1> ? { [K in keyof S1]?: (S1[K] extends object ? PreloadedState<S1[K]> : S1[K]) | undefined; } : never) | { [K in keyof S]: S[K] extends object ? PreloadedState<...> : S[K]; }' is not assignable to type 'PreloadedState<S>'.
Type 'S extends CombinedState<infer S1> ? { [K in keyof S1]?: (S1[K] extends object ? PreloadedState<S1[K]> : S1[K]) | undefined; } : never' is not assignable to type 'PreloadedState<S>'.
Type '{}' is not assignable to type 'PreloadedState<S>'.ts(2322)
Typing enhancers
as any
for now...
const store = configureStore({
reducer: createReducer(),
middleware: getDefaultMiddleware => getDefaultMiddleware().concat(middlewares),
devTools:
/* istanbul ignore next line */
process.env.NODE_ENV !== 'production' || process.env.PUBLIC_URL.length > 0,
// A bit dirty because of https://github.com/react-boilerplate/redux-injectors/issues/27
// Waiting on redux-injectors to fix their typings for recent reduxjs/toolkit
enhancers: enhancers as any,
preloadedState: state,
})