/** * Infer a combined state shape from a `ReducersMapObject`. * * @template M Object map of reducers as provided to `combineReducers(map: M)`. */ export type StateFromReducersMapObject<M> = M extends ReducersMapObject ? { [P in keyof M]: M[P] extends Reducer<infer S, any> ? S : never } : never
/** * Infer reducer union type from a `ReducersMapObject`. * * @template M Object map of reducers as provided to `combineReducers(map: M)`. */ export type ReducerFromReducersMapObject<M> = M extends { [P in keyof M]: infer R } ? R extends Reducer<any, any> ? R : never : never
/** * Infer action type from a reducer function. * * @template R Type of reducer. */ export type ActionFromReducer<R> = R extends Reducer<any, infer A> ? A : never