Javascript FlowJS类型和使用&&;有任务

Javascript FlowJS类型和使用&&;有任务,javascript,ecmascript-6,flowtype,destructuring,Javascript,Ecmascript 6,Flowtype,Destructuring,假设我有以下流类型: type formExample = { +form?: { +[string]: { values: { [string]: string | number | boolean } } } } 然后我像这样消费: const { email, password } = form && form.login && form.login.values 无法通过以下方式进行流类型

假设我有以下流类型:

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
的类型为
{…}|未定义
(如果
form
未定义)


Flow抱怨说,如果值
未定义

您误解了错误,那么您的解构就毫无意义

form&&form.login&&form.login.values
的类型为
{…}|未定义
(如果
form
未定义)


Flow抱怨说如果值
未定义

如果
表单
未定义怎么办?如果
表单
未定义怎么办?这实际上很有意义!谢谢这其实很有道理!谢谢