Reputation: 13206
The following line
const reducers: ActionReducerMap<any> = {};
throws the error:
ESLint: Unexpected any. Specify a different type.(@typescript-eslint/no-explicit-any)
I'd like to know what the type for ActionReducerMap is?
Can I set it explicitly?
export const metaReducers: MetaReducer<State>[] = !environment.production ? [logger] : [];
interface State {
router: fromRouter.RouterReducerState<BaseRouterStoreState>;
}
const reducers: ActionReducerMap<any> = {};
export function logger(reducer: ActionReducer<State>): ActionReducer<State> {
return (state, action) => {
const result = reducer(state, action);
console.groupCollapsed(action.type);
console.log('prev state', state);
console.log('action', action);
console.log('next state', result);
console.groupEnd();
return result;
};
}
Here is my full code:
@NgModule({
declarations: [AppComponent],
imports: [
StoreModule.forRoot(reducers, {
metaReducers,
runtimeChecks: {
strictActionImmutability: true,
strictStateImmutability: true,
},
}),
],
bootstrap: [AppComponent],
})
export class AppModule {}
Upvotes: 1
Views: 1001
Reputation: 46
You should define an interface:
export interface AppState {
storeBooks: ReadonlyArray<book>;
}
export const reducers: ActionReducerMap<AppState> = {
storeBooks: undefined
};
Upvotes: 2