我有一个对象的键无法提前确定。如何使用Joi为值强制执行特定类型(标量类型(?
具有未知密钥的示例对象:
const obj = {
x: "foo",
y: 7,
z: true,
p: { m: 1, n: false },
q: [ "a", "b", "c" ]
}
由于我只想接受scalar
类型,这意味着密钥p
和q
应该会导致验证失败。
我如何与Joi一起实现这一点?
到目前为止,我已经尝试过了,但它允许非标量值,如['a', 'b', 'c']
:
Joi.object().pattern(Joi.string(), Joi.boolean(), Joi.number())
使用此
const validationSchema = Joi.object().pattern(
Joi.string(),
Joi.alternatives().try(Joi.number(), Joi.string(), Joi.boolean())
);
参见沙箱
https://codesandbox.io/s/jovial-paper-hqiun