requiredWith
Поле обязательно, если заполнено хотя бы одно из перечисленных полей. Аналог required_with в Laravel.
Сигнатура
ts
function requiredWith<T>(fields: string[], schema: Schema<T>): Schema<T | undefined>Параметры
| Параметр | Тип | Описание |
|---|---|---|
fields | string[] | Имена соседних полей |
schema | Schema<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' }