FlowJS 类型和使用 && 赋值

FlowJS type and using && with assignment

假设我有以下流类型:

type formExample = {
  +form?: {
    +[string]: {
      values: {
        [string]: string | number | boolean
      }
    }
  }
}

然后我这样消费:

const { email, password } = form && form.login && form.login.values

流类型检查失败:

Property email is missing in undefined [1]

我不明白电子邮件怎么会是未定义的以及抱怨什么流程?

你误解了这个错误。

form && form.login && form.login.values的类型是{...} | undefined(如果form未定义)。

Flow 抱怨说如果值为 undefined,你的解构就没有意义。