Numbers
Number decoders for validating and parsing numeric values.
number
number: Decoder<number> (source)
Accepts finite numbers (can be integer or float values). Values NaN, or positive and
negative Infinity will get rejected.
| Input | Result |
|---|---|
| 123 | |
| -3.14 | |
| Infinity ^^^^^^^^ Number must be finite | |
| NaN ^^^ Number must be finite | |
| "not a number" ^^^^^^^^^^^^^^ Must be number |
integer
integer: Decoder<number> (source)
Accepts only finite whole numbers.
| Input | Result |
|---|---|
| 123 | |
| -3.14 ^^^^^ Number must be an integer | |
| Infinity ^^^^^^^^ Number must be finite | |
| NaN ^^^ Number must be finite | |
| "not a integer" ^^^^^^^^^^^^^^^ Must be number |
positiveNumber
positiveNumber: Decoder<number> (source)
Accepts only non-negative (zero or positive) finite numbers.
| Input | Result |
|---|---|
| 123 | |
| 3.14 | |
| 0 | |
| -42 ^^^ Number must be positive | |
| Infinity ^^^^^^^^ Number must be finite | |
| NaN ^^^ Number must be finite | |
| "not a number" ^^^^^^^^^^^^^^ Must be number | |
| 0 ^ Number must be positive |
positiveInteger
positiveInteger: Decoder<number> (source)
Accepts only non-negative (zero or positive) finite whole numbers.
| Input | Result |
|---|---|
| 123 | |
| 0 | |
| -3 ^^ Number must be positive | |
| 3.14 ^^^^ Number must be an integer | |
| Infinity ^^^^^^^^ Number must be finite | |
| NaN ^^^ Number must be finite | |
| "not a number" ^^^^^^^^^^^^^^ Must be number | |
| 0 ^ Number must be positive |
anyNumber
anyNumber: Decoder<number> (source)
Accepts any valid number value.
This also accepts special values like NaN and Infinity. Unless you want to
deliberately accept those, you'll likely want to use the number decoder instead.
| Input | Result |
|---|---|
| 123 | |
| -3.14 | |
| Infinity | |
| NaN | |
| "not a number" ^^^^^^^^^^^^^^ Must be number |
bigint
bigint: Decoder<bigint> (source)
Accepts any valid bigint value.
| Input | Result |
|---|---|
| 123n | |
| -4543000000n | |
| 123 ^^^ Must be bigint | |
| -3.14 ^^^^^ Must be bigint | |
| Infinity ^^^^^^^^ Must be bigint | |
| NaN ^^^ Must be bigint | |
| "not a number" ^^^^^^^^^^^^^^ Must be bigint |
Limiting number ranges
function min( min: number, decoder?: Decoder<number> ): Decoder<number> (source)
function max( max: number, decoder?: Decoder<number> ): Decoder<number> (source)
function between( min: number, max: number, decoder?: Decoder<number> ): Decoder<number> (source)
Available since 2.9.
Rejects values outside the given bounds. Bounds are inclusive. Defaults to the number
decoder if none is provided.
| Input | min | max | between |
|---|---|---|---|
| 42 | 42 | 42 | |
| 3.141592653589793 | 3.141592653589793 | 3.141592653589793 | |
| 100 | 100 | 100 | |
| -1 ^^ Too low, must be at least 0 | -1 | -1 ^^ Too low, must be between 0 and 100 | |
| 123 | 123 ^^^ Too high, must be at most 100 | 123 ^^^ Too high, must be between 0 and 100 |
You can pass integer as the number decoder to use to further restrict what kind of
numbers are accepted:
| Input | between(1, 100) | between(1, 100, integer) |
|---|---|---|
| 5 | 5 | |
| 3.14 | 3.14 ^^^^ Number must be an integer | |
| 314.1592653589793 ^^^^^^^^^^^^^^^^^ Too high, must be between 1 and 100 | 314.1592653589793 ^^^^^^^^^^^^^^^^^ Number must be an integer |