Flow无法使用计算对象键推断联合类型

时间:2018-02-05 17:00:05

标签: javascript javascript-objects flowtype

所以我有一个联合类型,EduType,定义如下:

export type EduType =
  | { level: string }
  | { program: string }
  | { level: string, program: string }

和一个函数,它返回一个期望EduType的函数,定义如下

updateEduSelects(which: 'level' | 'program') {
  return (_, __, val: string) => {
    const value = val != null ? val : ''; //if val is null replace with ''
    const newEdu = value === 'None'       //if None entered, both fields should
      ? { level: 'None', program: 'None' }//be none
      : { [which]: value };
    this.props.onNewClientEdu(newEdu); 
  };
}

我的问题是this.props.onNewClientEdu(newEdu)行上的流量错误,说object literal. Could not decide which case to select。当我有两个函数,没有计算键值时,它工作正常。我的直觉是说我错误地键入EduType对象,但我仍然不知道如何更好地代表它。

提前致谢

0 个答案:

没有答案