Skip to content

Num.InRange

Num / InRange

Import

typescript
import { Num } from '@wollybeard/kit'

// Access via namespace
Num.InRange.someFunction()
typescript
import * as Num from '@wollybeard/kit/num'

// Access via namespace
Num.InRange.someFunction()

Functions

[F] is

typescript
<Min extends number, Max extends number > (value: unknown, min: Min, max: Max): boolean

Type predicate to check if value is within a specific range.

[F] from

typescript
<Min extends number, Max extends number > (value: number, min: Min, max: Max): InRange<Min, Max>

Construct an InRange number. Throws if the value is outside the range.

[F] tryFrom

typescript
<Min extends number, Max extends number > (value: number, min: Min, max: Max): InRange<Min, Max> | null

Try to construct an InRange number. Returns null if the value is outside the range.

[F] clamp

typescript
<_T extends number, Min extends number, Max extends number > (value: _T, min: Min, max: Max): Clamp<_T, Min, Max>

Clamp a number to a range. Forces the value to be within the specified minimum and maximum bounds.

[F] clampOn

typescript
<_T extends number>(value: _T): <Min extends number, Max extends number>(min: Min, max: Max) => Clamp<_T, Min, Max>

[F] clampWith

typescript
<Min extends number, Max extends number > (min: Min, max: Max): <_T extends number>(value: _T) => Clamp<_T, Min, Max>

[F] isOn

typescript
(value: unknown): <Min extends number, Max extends number>(min: Min, max: Max) => boolean

[F] isWith

typescript
<Min extends number, Max extends number > (min: Min, max: Max): (value: unknown) => value is InRange<Min, Max>

Types

[∩] InRange

typescript
type InRange<Min extends number, Max extends number> = number & {
  [InRangeBrand]: { min: Min; max: Max }
}

Range-constrained number.

[T] Clamp

typescript
type Clamp<_T extends number, Min extends number, Max extends number> = InRange<
  Min,
  Max
>

Type-level clamp transformation. Ensures the result type is within the specified range.