Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ActionReducerMap的类型是什么?_Javascript_Angular_Typescript_Eslint_Ngrx - Fatal编程技术网

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
};