Redux 允许部分类型

Redux 允许部分类型,redux,flowtype,Redux,Flowtype,将Flowtype与Redux一起使用,我得到了如下类型: export type MapState = { addresses: Address[], selected: Array<number> } 在reducer中,我将参数合并到以下状态: export default (state: MapState = initialState, action: SetParamsAction) => { switch (action.type) { cas

将Flowtype与Redux一起使用,我得到了如下类型:

export type MapState = {
  addresses: Address[],
  selected: Array<number>
}
在reducer中,我将参数合并到以下状态:

export default (state: MapState = initialState, action: SetParamsAction) => {
  switch (action.type) {
    case actionTypes.SET_PARAMS: {
      return {
         ...state,
         ...action.payload.params
      }
 [...]
我正在寻找一种可能性,告诉Flowtype在action creator中接受
params
,如果它是一个只包含
MapState
属性的对象,这样我就可以去掉
setParams
中的
任何
。有什么想法吗?

您可以添加一个类似的:

类型可能图={|
地址?:地址[],
所选?:编号[],
|};
导出常量setParams=(参数:可能参数):操作=>({
类型:actionTypes.SET_参数,
有效载荷:{
params,
},
});

你可以查看所有的可能性,谢谢你的贡献!是的,我知道这种可能性,但我不希望用可选属性复制该类型。@选择一个精确的对象类型是100%确保参数只能是指定的,而不能是其他参数的唯一方法。由于所有参数都是可选的,因此需要在确切的对象类型中将它们设置为可选的。没有其他方法可以让
流动
检查参数。
export default (state: MapState = initialState, action: SetParamsAction) => {
  switch (action.type) {
    case actionTypes.SET_PARAMS: {
      return {
         ...state,
         ...action.payload.params
      }
 [...]