array
Массив, каждый элемент которого проверяется одной схемой.
Сигнатура
ts
function array<T>(item: Schema<T>, msg?: Message): Schema<T[]>Параметры
| Параметр | Тип | Описание |
|---|---|---|
item | Schema<T> | Схема для каждого элемента |
msg | Message | Своё сообщение. Заменяет сообщения по умолчанию для всех ошибок этой схемы |
Коды ошибок
| Код | Когда | Сообщение по умолчанию |
|---|---|---|
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())), () => []);