Joi 将枚举验证为地图中的键
Joi validate on enums as keys in a map
我有一个用字符串表示的枚举列表
export const constKeys = [
'A',
'B',
'C',
...
];
并且我想使用 Joi 来验证 Immutable.js 地图是否具有来自 constKeys
的键和数字值。看起来我可以做类似
的事情
const myMapValidator = Joi.object().keys({
A: Joi.number(),
B: Joi.number(),
C: Joi.number(),
});
但是如果 constKeys
真的很长,这种方法就不会很好地工作。有没有办法让 Joi 知道密钥必须来自 constKeys
并且值是数字?
我明白了。您可以使用 mapValues
来自 lodash
const myMapValidator = Joi.object().keys(mapValues(constKeys, () => Joi.number()))
我有一个用字符串表示的枚举列表
export const constKeys = [
'A',
'B',
'C',
...
];
并且我想使用 Joi 来验证 Immutable.js 地图是否具有来自 constKeys
的键和数字值。看起来我可以做类似
const myMapValidator = Joi.object().keys({
A: Joi.number(),
B: Joi.number(),
C: Joi.number(),
});
但是如果 constKeys
真的很长,这种方法就不会很好地工作。有没有办法让 Joi 知道密钥必须来自 constKeys
并且值是数字?
我明白了。您可以使用 mapValues
来自 lodash
const myMapValidator = Joi.object().keys(mapValues(constKeys, () => Joi.number()))