代码之家  ›  专栏  ›  技术社区  ›  turivishal

如何允许@hapi/joi中的数字集中的单个数字和数字数组这两种类型?

  •  0
  • turivishal  · 技术社区  · 5 年前

    有两种可能性:

    // 1) Pssibility - Any number from 1 to 3
    activeStatus: 1 or 2 or 3
    
    // 2) Possibility - Array of numbers, Any from 1, 2, 3
    activeStatus: [1, 2, 3]
    

    我想结合这两种可能性,并需要允许输入单个数字或数字数组中的任何一个,

    已实现,允许1到3的单个数字,

    activeStatus: Joi.number().valid(1, 2, 3)
    

    已实现,允许使用任何类型的数字或数组 any() ,

    activeStatus: Joi.any().valid(1, 2, 3)
    

    我尝试在中添加数组 valid() 但它发送了一个错误,

    activeStatus: Joi.any().valid(1, 2, 3, [1, 2, 3])
    // Method no longer accepts array arguments: valid'
    

    还有其他方法可以实现这两种可能性吗?

    1 回复  |  直到 5 年前
        1
  •  2
  •   Darth    5 年前
    activeStatus: Joi.alternatives(
        Joi.number().valid(1, 2, 3),
        Joi.array().items(Joi.number().valid(1, 2, 3))
    )