Skip to content

requiredWithout ​

Поле обязательно, если не заполнено хотя бы одно из перечисленных полей. Аналог required_without в Laravel — например, «телефон или email».

Сигнатура ​

ts
function requiredWithout<T>(fields: string[], schema: Schema<T>): Schema<T | undefined>

Параметры ​

ПараметрТипОписание
fieldsstring[]Имена соседних полей
schemaSchema<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

См. также ​