@tesler-ui/cra-template-typescript
Version:
The base TypeScript template for Create React App.
30 lines (25 loc) • 672 B
text/typescript
import {AppState} from '../interfaces/storeSlices'
import {AnyAction} from './actions'
/**
* Describes an application reducer
*
*/
export type CustomReducer<ReducerState, State = AppState> = (
state: ReducerState,
action: AnyAction,
store?: Readonly<State>
) => ReducerState
/**
*
*/
export interface ReducerConfiguration<ReducerState, ClientActions> {
initialState: ReducerState
override?: boolean
reducer: CustomReducer<ReducerState, ClientActions>
}
/**
*
*/
export type RootReducer<ClientStore, ClientActions> = {
[reducerSliceName in keyof ClientStore]: ReducerConfiguration<ClientStore[keyof ClientStore], ClientActions>;
}