如何为必须至少具有一个属性的对象定义Flow类型?

时间:2017-01-29 11:59:30

标签: javascript flowtype

我有以下对象声明:

type QueryQuantifierType = {
  +max?: number,
  +min?: number,
  +multiple?: boolean
};

允许:

{
  min: 1
}

{
  max: 1
}

{
  max: 1,
  min: 1
}

{
  min: 1,
  multiple: true
}

{
  max: 1,
  multiple: true
}

这些是有效值。

然而,问题是它也是permits an empty object

如何为必须至少具有一个属性的对象定义Flow类型?

1 个答案:

答案 0 :(得分:2)

我弄清楚如何执行此操作的唯一方法是使用unionexact个对象:

type QuantifierType =
  {|
    +max: number,
    +min?: number,
    +multiple?: boolean
  |} |
  {|
    +max?: number,
    +min: number,
    +multiple?: boolean
  |} |
  {|
    +max?: number,
    +min?: number,
    +multiple: boolean
  |};