isNumberBetween()

isNumberBetween()

Checks if any value is a number type or an instance of Number(by using isNumber()) between a specified range.

is-number-between.func.ts
const isNumberBetween = <
  Type extends AnyNumber = number,
  Min extends number = number,
  Max extends number = number,
  Payload extends object = object
>(
  value: any,
  min: Min,
  max: Max,
  callback: ResultCallback<
    any,
    { min: Min; max: Max } & Payload
  > = resultCallback,
  payload?: Payload
): value is NumberBetween<Min, Max, Type> =>
  callback(
    isNumber(value)
      ? (isNumberType(min) ? value.valueOf() >= min : false) &&
          (isNumberType(max) ? value.valueOf() <= max : false)
      : false,
    value,
    { ...payload, min, max } as any
  );

Generic type variables

TypeextendsAnyNumber=number

A generic type variable Type constrained by AnyNumber indicates the number type of the given value via the return type, by default number.

Minextendsnumber=number

Maxextendsnumber=number

Payloadextendsobject=object

Parameters

value: any

The value of any type to check.

min: Min

The minimum range of generic type variable Min for a given value.

max: Max

The maximum range of generic type variable Max for a given value.

callback: ResultCallback<any, { min: Min; max: Max } & Payload>

payload?: Payload

Return type

value is NumberBetween<Min, Max, Type>

The return type is a boolean as the result of its statement indicating the value is a generic type NumberBetween that takes generic type variables Min and Max as a range of the supplied value and Type as the type of the supplied value.

Returns

The return value is a boolean indicating whether the value is a finite number of a number type or an instance of Number between a specified range.

Example usage

Type

// Example usage.
import { isNumberBetween } from '@angular-package/type';

const age = 13;

// true; The return type `value is NumberBetween<0, 13, number>`
isNumberBetween(age, 0, 13);
// false; The return type `value is NumberBetween<14, 28, number>`
isNumberBetween(age, 14, 28);
// false; The return type `value is NumberBetween<0, 12, number>`
isNumberBetween(age, 0, 12);
// true; The return type `value is NumberBetween<13, 13, number>`
isNumberBetween(age, 13, 13);

Instance

// Example usage.
import { isNumberBetween } from '@angular-package/type';

const ageBox = new Number(age);

// true; The return type `value is NumberBetween<0, 13, Number>`
isNumberBetween(ageBox, 0, 13);
// false; The return type `value is NumberBetween<14, 28, Number>`
isNumberBetween(ageBox, 14, 28);
// false; The return type `value is NumberBetween<0, 12, Number>`
isNumberBetween(ageBox, 0, 12);
// true; The return type `value is NumberBetween<13, 13, Number>`
isNumberBetween(ageBox, 13, 13);

Last updated

Was this helpful?