number
Конечное число. NaN, Infinity и строки не проходят.
Сигнатура
ts
function number(msg?: Message): Schema<number>Параметры
| Параметр | Тип | Описание |
|---|---|---|
msg | Message | Своё сообщение. Заменяет сообщения по умолчанию для всех ошибок этой схемы |
Пропускает
Число, для которого Number.isFinite(value) === true. Ноль — валидное значение, а не пустое.
Пустыми считаются undefined, null и '' — подробнее в разделе Пустые значения.
Коды ошибок
| Код | Когда | Сообщение по умолчанию |
|---|---|---|
required | Значение пустое | Required |
number | Не число, NaN или Infinity | Must be a number |
Тексты можно поменять: см. Сообщения и локализация.
Числа из форм и query
Из HTML-форм и query-строк числа приходят строкой ("42"). Используйте coerce.number — он приведёт строку к числу.
Примеры
Количество товара
ts
const qty = pipe(number(), integer(), min(1), max(99));
validate(qty, 3); // valid
validate(qty, '3'); // Must be a number — нужен coerce.number()
validate(qty, 0); // Must be at least 1См. также
- coerce.number — число из строки
- min
- max
- integer