// create-reducer.ts import { Action } from 'redux'; type Handlers> = { readonly [Type in Types]: (state: State, action: Actions) => State } export const createReducer = ( initialState, handlers, ) => (state = initialState, action) => (handlers.hasOwnProperty(action.type) ? handlers[action.type](state, action) : state);