Skip to content

literal ​

Ровно одно конкретное значение: строка, число или true/false. Сравнение строгое (===).

Сигнатура ​

ts
function literal<const T extends string | number | boolean>(value: T, msg?: Message): Schema<T>

Параметры ​

ПараметрТипОписание
value`stringnumber
msgMessageСвоё сообщение. Заменяет сообщения по умолчанию для всех ошибок этой схемы

Коды ошибок ​

КодКогдаСообщение по умолчанию
requiredЗначение пустоеRequired
literalЗначение не совпадаетMust be {expected}

Тексты можно поменять: см. Сообщения и локализация.

Особенности ​

  • Тип результата — сам литерал: literal('admin') даёт тип 'admin', а не string.
  • literal('') не сработает: пустая строка считается незаполненным значением. См. Пустые значения.

Примеры ​

Согласие с условиями ​

ts
const Signup = object({
  terms: literal(true, 'Нужно принять условия'),
});

Версия API ​

ts
const Payload = object({ version: literal(2), data: unknown() });

См. также ​

  • oneOf — одно из нескольких значений
  • boolean