unique
В массиве нет повторяющихся элементов.
Сигнатура
ts
function unique<T>(by?: (item: T) => unknown, msg?: Message): Action<T[]>Параметры
| Параметр | Тип | Описание |
|---|---|---|
by | (item: T) => unknown | По какому значению сравнивать: (u) => u.email. По умолчанию — сам элемент |
msg | Message | Своё сообщение об ошибке |
Коды ошибок
| Код | Когда | Сообщение по умолчанию |
|---|---|---|
unique | Есть повторы | Must not contain duplicates |
Тексты можно поменять: см. Сообщения и локализация.
Особенности
Строки и числа сравниваются по значению, объекты — по содержимому.
Пример
ts
const Invite = object({
emails: pipe(array(pipe(string(), email())), unique()),
members: pipe(array(object({ email: string() })), unique((m) => m.email.toLowerCase())),
});