Skip to content

number ​

Конечное число. NaN, Infinity и строки не проходят.

Сигнатура ​

ts
function number(msg?: Message): Schema<number>

Параметры ​

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

Пропускает ​

Число, для которого Number.isFinite(value) === true. Ноль — валидное значение, а не пустое.

Пустыми считаются undefined, null и '' — подробнее в разделе Пустые значения.

Коды ошибок ​

КодКогдаСообщение по умолчанию
requiredЗначение пустоеRequired
numberНе число, NaN или InfinityMust 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

См. также ​