Skip to content

array ​

数组,其中每个元素都用同一个 Schema 校验。

签名 ​

ts
function array<T>(item: Schema<T>, msg?: Message): Schema<T[]>

参数 ​

参数类型说明
itemSchema<T>每个元素的 Schema
msgMessage自定义信息。替换该 Schema 所有错误的默认信息

错误代码 ​

代码触发条件默认信息
required值为空Required
array不是数组Must be an array

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

注意事项 ​

  • 空数组 [] 是有效值。要求至少一个元素:pipe(array(...), minLength(1))。
  • 元素的错误路径包含索引:items.2.title。
  • 会校验所有元素,而不是在第一个错误处停止。
  • 数组长度由 minLength、maxLength 和 length 检查。

示例 ​

订单商品 ​

ts
const Order = object({
  items: pipe(
    array(object({ id: number(), qty: pipe(number(), integer(), min(1)) })),
    minLength(1, '购物车为空'),
  ),
});

validate(Order, { items: [{ id: 1, qty: 0 }] }).errors; // { 'items.0.qty': 'Must be at least 1' }

标签 ​

ts
const tags = optional(array(pipe(string(), trim(), toLowerCase())), () => []);

另请参阅 ​