requiredWithout
Поле обязательно, если не заполнено хотя бы одно из перечисленных полей. Аналог required_without в Laravel — например, «телефон или email».
Сигнатура
ts
function requiredWithout<T>(fields: string[], schema: Schema<T>): Schema<T | undefined>Параметры
| Параметр | Тип | Описание |
|---|---|---|
fields | string[] | Имена соседних полей |
schema | Schema<T> | Схема значения, когда оно передано |
Коды ошибок
| Код | Когда | Сообщение по умолчанию |
|---|---|---|
required | Значение пустое, а поле обязательно | Required |
Тексты можно поменять: см. Сообщения и локализация.
Пример
Телефон или email
ts
const Contact = object({
phone: requiredWithout(['email'], string()),
email: requiredWithout(['phone'], pipe(string(), email())),
});
validate(Contact, {}).errors; // { phone: 'Required', email: 'Required' }
validate(Contact, { email: 'a@a.ru' }).valid; // true