【发布时间】:2020-02-12 20:45:53
【问题描述】:
我正在使用 AJV 检查“设置”对象。我想添加一个新属性onFeedbackChange,它可以是一个函数(不是必需的)。
const ajv = new Ajv({
allErrors: true,
});
ajv.addKeyword('function', {
valid: true,
validate: function (data) {
return typeof data === 'function';
}
});
const validate = ajv.compile(settingsSchema);
架构:
feedback:
type: object
properties:
enabled:
type: boolean
saveFeedback: *endpoint
updateFeedback: *endpoint
onFeedbackChange: function
additionalProperties: false
required:
- enabled
- saveFeedback
- updateFeedback
但这失败了:
错误:架构无效:data.properties['modules'].properties['feedback'].properties['onFeedbackChange'] 应该是对象,布尔值
我想知道如何执行验证,以及为什么这不是内置的。
【问题讨论】:
-
TL;来自DavidP's answer的DR:使用
instanceof: 'Function'
标签: ajv