Skip to content

array ​

Массив, каждый элемент которого проверяется одной схемой.

Сигнатура ​

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

Параметры ​

ПараметрТипОписание
itemSchema<T>Схема для каждого элемента
msgMessageСвоё сообщение. Заменяет сообщения по умолчанию для всех ошибок этой схемы

Коды ошибок ​

КодКогдаСообщение по умолчанию
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())), () => []);

См. также ​