number
A finite number. NaN, Infinity and strings are rejected.
Signature
ts
function number(msg?: Message): Schema<number>Parameters
| Parameter | Type | Description |
|---|---|---|
msg | Message | Custom message. Replaces the default messages for all errors of this schema |
Accepts
A number for which Number.isFinite(value) === true. Zero is a valid value, not an empty one.
undefined, null and '' are treated as empty — see Empty values.
Error codes
| Code | When | Default message |
|---|---|---|
required | The value is empty | Required |
number | Not a number, NaN or Infinity | Must be a number |
You can change the texts: see Messages & i18n.
Numbers from forms and query strings
HTML forms and query strings send numbers as strings ("42"). Use coerce.number — it converts the string to a number.
Example
Item quantity
ts
const qty = pipe(number(), integer(), min(1), max(99));
validate(qty, 3); // valid
validate(qty, '3'); // Must be a number — use coerce.number()
validate(qty, 0); // Must be at least 1See also
- coerce.number — number from a string
- min
- max
- integer