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)
##### .string(value)
##### .number(value)
Note: `is.number(NaN)` returns `false`.
##### .boolean(value)
##### .symbol(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.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');
// eslint-disable-next-line @typescript-eslint/ban-types

View file

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