Skip to content

requiredWith ​

Поле обязательно, если заполнено хотя бы одно из перечисленных полей. Аналог required_with в Laravel.

Сигнатура ​

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

Параметры ​

ПараметрТипОписание
fieldsstring[]Имена соседних полей
schemaSchema<T>Схема значения, когда оно передано

Коды ошибок ​

КодКогдаСообщение по умолчанию
requiredЗначение пустое, а поле обязательноRequired

Тексты можно поменять: см. Сообщения и локализация.

Особенности ​

Заполненным считается любое значение, кроме undefined, null и '' — см. Пустые значения.

Пример ​

ts
const ChangePassword = object({
  password: optional(pipe(string(), minLength(8))),
  passwordConfirm: requiredWith(['password'], pipe(string(), sameAs('password'))),
});

validate(ChangePassword, {}).valid;                     // true — nothing to change
validate(ChangePassword, { password: 'secret123' }).errors; // { passwordConfirm: 'Required' }

См. также ​