Я использую библиотеку 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 из объекта, Джой все равно будет ожидать, что a потребуется. Если b отсутствует в объекте, я не хочу, чтобы в a выполнялась какая-либо проверка.
Я не могу найти других примеров, чтобы люди делали это - может ли кто-нибудь помочь?