literal
Ровно одно конкретное значение: строка, число или true/false. Сравнение строгое (===).
Сигнатура
ts
function literal<const T extends string | number | boolean>(value: T, msg?: Message): Schema<T>Параметры
| Параметр | Тип | Описание |
|---|---|---|
value | `string | number |
msg | Message | Своё сообщение. Заменяет сообщения по умолчанию для всех ошибок этой схемы |
Коды ошибок
| Код | Когда | Сообщение по умолчанию |
|---|---|---|
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() });