Javascript ActionReducerMap的类型是什么?
下一行Javascript ActionReducerMap的类型是什么?,javascript,angular,typescript,eslint,ngrx,Javascript,Angular,Typescript,Eslint,Ngrx,下一行 const reducers: ActionReducerMap<any> = {}; 我想知道ActionReducerMap的类型是什么 我可以显式地设置它吗 export const metaReducers: MetaReducer<State>[] = !environment.production ? [logger] : []; interface State { router: fromRouter.RouterReducerState&l
const reducers: ActionReducerMap<any> = {};
我想知道ActionReducerMap的类型是什么
我可以显式地设置它吗
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;
};
}
您应该定义一个接口:
export interface AppState {
storeBooks: ReadonlyArray<book>;
}
export const reducers: ActionReducerMap<AppState> = {
storeBooks: undefined
};
导出接口AppState{
书店:ReadonlyArray;
}
导出常量缩减器:ActionReducerMap={
存储库:未定义
};
尝试使用T
或?
或对象
获取错误TS2304:找不到名称“T”。
对于对象,获取错误TS2322:类型“{}”不可分配给类型“ActionReducerMap”。属性“构造函数”的类型不兼容。类型“Function”不可分配给类型“ActionReducer”。类型“Function”与签名(state:Function | undefined,action:action):Function)不匹配。
Hmm我不确定为什么any
在这种情况下不起作用。最后,我要说的是,给它所使用的类型。这意味着使用
,如果需要使用其他类型,则使用or运算符将其与之一起使用
@NgModule({
declarations: [AppComponent],
imports: [
StoreModule.forRoot(reducers, {
metaReducers,
runtimeChecks: {
strictActionImmutability: true,
strictStateImmutability: true,
},
}),
],
bootstrap: [AppComponent],
})
export class AppModule {}
export interface AppState {
storeBooks: ReadonlyArray<book>;
}
export const reducers: ActionReducerMap<AppState> = {
storeBooks: undefined
};