Skip to content

unique ​

В массиве нет повторяющихся элементов.

Сигнатура ​

ts
function unique<T>(by?: (item: T) => unknown, msg?: Message): Action<T[]>

Параметры ​

ПараметрТипОписание
by(item: T) => unknownПо какому значению сравнивать: (u) => u.email. По умолчанию — сам элемент
msgMessageСвоё сообщение об ошибке

Коды ошибок ​

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

См. также ​