您正在寻找对象.xor(同级) https://github.com/hapijs/joi/blob/master/API.md#objectxorpeers如果恰好是其中之一a
, b
, or c
是必须的。
定义一组键之间的排他关系,其中需要其中一个键,但不同时需要:
-
peers
- 独占键名称不得一起出现,但需要其中之一。peers
可以是单个字符串值、字符串值数组或作为参数提供的每个对等点。
const schema = Joi.object().keys({
a: Joi.any(),
b: Joi.any(),
c: Joi.any()
}).xor('a', 'b', 'c');
Or, object.oxor(同级) https://github.com/hapijs/joi/blob/master/API.md#objectoxorpeers如果只有其中之一a
, b
, or c
是允许的,但不是必需的。
定义一组键之间的排他关系,其中仅允许一个键,但不需要任何键,其中:
-
peers
- 不得一起出现但不需要的情况下的独占键名称。
const schema = Joi.object().keys({
a: Joi.any(),
b: Joi.any(),
c: Joi.any()
}).oxor('a', 'b', 'c');