我正在使用 Joi 库来验证一个对象。当另一个可选属性(在同一对象的同一级别)属于某种类型(例如字符串)时,我想使某个属性成为必需的。Joi 文档显示了这个例子:
const schema = {
a: Joi.when('b', { is: true, then: Joi.required() }),
b: Joi.boolean()
};
但是,我不想检查 b (例如)是否为真,而是想检查它是否是一个字符串。我试过这个:
const schema = {
a: Joi.when('b', { is: Joi.string(), then: Joi.required() }),
};
但这似乎不起作用。如果我从对象中完全删除 b,Joi 似乎仍然期望 a 是必需的。如果 b 不在对象中,我不希望在 a 上放置任何验证。
我找不到任何其他人这样做的例子 - 任何人都可以帮忙吗?