26 lines
1.0 KiB
TypeScript
26 lines
1.0 KiB
TypeScript
import * as WeatherForecasts from './reducers/WeatherForecasts'
|
|
import * as Counter from './reducers/Counter'
|
|
import * as Content from './reducers/Content'
|
|
|
|
// The top-level state object
|
|
export interface ApplicationState {
|
|
counter: Counter.CounterState | undefined
|
|
weatherForecasts: WeatherForecasts.WeatherForecastsState | undefined
|
|
content: Content.IContentState | undefined
|
|
}
|
|
|
|
// Whenever an action is dispatched, Redux will update each top-level application state property using
|
|
// the reducer with the matching name. It's important that the names match exactly, and that the reducer
|
|
// acts on the corresponding ApplicationState property type.
|
|
export const reducers = {
|
|
counter: Counter.reducer,
|
|
weatherForecasts: WeatherForecasts.reducer,
|
|
content: Content.reducer
|
|
}
|
|
|
|
// This type can be used as a hint on action creators so that its 'dispatch' and 'getState' params are
|
|
// correctly typed to match your store.
|
|
export interface AppThunkAction<TAction> {
|
|
(dispatch: (action: TAction) => void, getState: () => ApplicationState): void
|
|
}
|