我有以下对象声明:

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 类型?

最佳答案

我想出如何做到这一点的唯一方法是使用 union 对象的 exact:

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

关于javascript - 如何为必须至少具有其中一个属性的对象定义 Flow 类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41920643/

10-12 04:39
查看更多