Я использую 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'] должен быть объектом, логическим
Интересно, как выполнить проверку и почему это не встроено.