do not accept NaN in is.number()

This commit is contained in:
Kai Niedziela 2019-05-31 12:26:13 +02:00
parent 7bf407fbf1
commit 2158ce68ed
3 changed files with 5 additions and 2 deletions

View file

@ -68,6 +68,9 @@ All the below methods accept a value and returns a boolean for whether the value
##### .null(value) ##### .null(value)
##### .string(value) ##### .string(value)
##### .number(value) ##### .number(value)
Note: `is.number(NaN)` returns `false`.
##### .boolean(value) ##### .boolean(value)
##### .symbol(value) ##### .symbol(value)
##### .bigint(value) ##### .bigint(value)

View file

@ -118,7 +118,7 @@ const isObject = (value: unknown): value is object => typeof value === 'object';
is.undefined = isOfType<undefined>('undefined'); is.undefined = isOfType<undefined>('undefined');
is.string = isOfType<string>('string'); is.string = isOfType<string>('string');
is.number = isOfType<number>('number'); is.number = (value: unknown): value is number => isOfType<number>('number')(value) && !is.nan(value);
is.bigint = isOfType<bigint>('bigint'); is.bigint = isOfType<bigint>('bigint');
// eslint-disable-next-line @typescript-eslint/ban-types // eslint-disable-next-line @typescript-eslint/ban-types

View file

@ -494,7 +494,7 @@ test('is.string', t => {
}); });
test('is.number', t => { test('is.number', t => {
testType(t, 'number', ['nan', 'integer', 'safeInteger', 'infinite']); testType(t, 'number', ['integer', 'safeInteger', 'infinite']);
}); });
// TODO: Nodejs 10 only // TODO: Nodejs 10 only