Skip to content

requiredWithout ​

列出的字段中至少有一个未填写时,该字段为必填。类似 Laravel 的 required_without —— 例如“电话或邮箱”。

签名 ​

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

参数 ​

参数类型说明
fieldsstring[]同级字段的名称
schemaSchema<T>值存在时使用的 Schema

错误代码 ​

代码触发条件默认信息
required值为空且该字段为必填Required

可以修改这些文本:见 错误信息与国际化。

示例 ​

电话或邮箱 ​

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

另请参阅 ​