Add is.positiveNumber and is.negativeNumber (#184)

This commit is contained in:
Eugene 2023-07-14 23:26:30 +01:00 committed by GitHub
parent 3177d11801
commit 1284da085f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 95 additions and 0 deletions

View file

@ -167,6 +167,10 @@ is.string = isOfType<string>('string');
const isNumberType = isOfType<number>('number');
is.number = (value: unknown): value is number => isNumberType(value) && !is.nan(value);
is.positiveNumber = (value: unknown): value is number => is.number(value) && value > 0;
is.negativeNumber = (value: unknown): value is number => is.number(value) && value < 0;
is.bigint = isOfType<bigint>('bigint');
// eslint-disable-next-line @typescript-eslint/ban-types
@ -498,6 +502,9 @@ export const enum AssertionTypeDescription {
evenInteger = 'even integer',
oddInteger = 'odd integer',
positiveNumber = 'positive number',
negativeNumber = 'negative number',
directInstanceOf = 'T',
inRange = 'in range',
@ -511,6 +518,8 @@ type Assert = {
undefined: (value: unknown) => asserts value is undefined;
string: (value: unknown) => asserts value is string;
number: (value: unknown) => asserts value is number;
positiveNumber: (value: unknown) => asserts value is number;
negativeNumber: (value: unknown) => asserts value is number;
bigint: (value: unknown) => asserts value is bigint;
// eslint-disable-next-line @typescript-eslint/ban-types
function_: (value: unknown) => asserts value is Function;
@ -609,6 +618,8 @@ export const assert: Assert = {
undefined: (value: unknown): asserts value is undefined => assertType(is.undefined(value), 'undefined', value),
string: (value: unknown): asserts value is string => assertType(is.string(value), 'string', value),
number: (value: unknown): asserts value is number => assertType(is.number(value), 'number', value),
positiveNumber: (value: unknown): asserts value is number => assertType(is.positiveNumber(value), AssertionTypeDescription.positiveNumber, value),
negativeNumber: (value: unknown): asserts value is number => assertType(is.negativeNumber(value), AssertionTypeDescription.negativeNumber, value),
bigint: (value: unknown): asserts value is bigint => assertType(is.bigint(value), 'bigint', value),
// eslint-disable-next-line @typescript-eslint/ban-types
function_: (value: unknown): asserts value is Function => assertType(is.function_(value), 'Function', value),