如何对两个“精确”对象的并集进行类型细化?

时间:2017-07-02 11:43:07

标签: flowtype

DateObj的两种可能性似乎仍然与我脱节,Flow似乎并没有改进else分支上的类型。如何正确输入?

type DateObj = {| date: string |} | {| dateTime: string |}

export const parseDate = (dateObj: DateObj) => {
  if (dateObj.date) {
    return moment(dateObj.date).toDate()
  } else {
    return moment(dateObj.dateTime).toDate()
  }
}
  

流程:属性dateTime。在对象类型中找不到属性

     

(在最后一个返回语句的行)

1 个答案:

答案 0 :(得分:2)

尝试https://flow.org/try/帮助,它给了我一个额外的错误

if (dateObj.date) {
    ^ Sketchy null check. Perhaps you meant to check for null instead of for existence?

修复此错误也解决了我的原始问题

if (dateObj.date !== undefined) {