联合类型在flowtype中没有正确推断

时间:2016-12-30 21:18:23

标签: javascript redux flowtype

当我将它们用作以下函数的参数时,

flowtype无法识别以下给定类型:

/* @flow */

type Action =
    { type: "SELECT", componentToSelect: string }
    | { type: "UPDATE", componentToUpdate: string };

function dispatch(action: Action) {
  console.log(action.componentToSelect);
}
dispatch({
   type: "SELECT",
   componentToSelect: "anything"
});

错误信息如下:

  

componentToSelect。在对象类型中找不到属性

在线代码here

1 个答案:

答案 0 :(得分:2)

dispacth函数需要一个Action,但不能确定该操作具有属性 componentToSelect 。 我应该首先检查一下类型。

function dispatch(action: Action) {
  if (action.type === 'SELECT')
    console.log(action.componentToSelect);
}

查看online