From 3dd4dbd4d411a6dff0d970f6ded48f9de7ee32ba Mon Sep 17 00:00:00 2001 From: uhyo Date: Tue, 6 Dec 2022 01:16:58 +0900 Subject: [PATCH] fix: remove strong NumberConstructor type guards fixes #14 --- generated/lib.es2015.core.d.ts | 33 +++++---------------------------- lib/lib.es2015.core.d.ts | 30 ------------------------------ tests/src/es2015.core.ts | 18 ------------------ 3 files changed, 5 insertions(+), 76 deletions(-) diff --git a/generated/lib.es2015.core.d.ts b/generated/lib.es2015.core.d.ts index 9226425..8074de8 100644 --- a/generated/lib.es2015.core.d.ts +++ b/generated/lib.es2015.core.d.ts @@ -253,19 +253,20 @@ interface NumberConstructor { * 2.2204460492503130808472633361816 x 10‍−‍16. */ readonly EPSILON: number; + /** * Returns true if passed value is finite. * Unlike the global isFinite, Number.isFinite doesn't forcibly convert the parameter to a * number. Only finite values of the type number, result in true. * @param number A numeric value. */ - isFinite(number: unknown): number is number; + isFinite(number: unknown): boolean; /** * Returns true if the value passed is an integer, false otherwise. * @param number A numeric value. */ - isInteger(number: unknown): number is number; + isInteger(number: unknown): boolean; /** * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a @@ -273,13 +274,13 @@ interface NumberConstructor { * to a number. Only values of the type number, that are also NaN, result in true. * @param number A numeric value. */ - isNaN(number: unknown): number is number; + isNaN(number: unknown): boolean; /** * Returns true if the value passed is a safe integer. * @param number A numeric value. */ - isSafeInteger(number: unknown): number is number; + isSafeInteger(number: unknown): boolean; /** * The value of the largest integer n such that n and n + 1 are both exactly representable as @@ -310,30 +311,6 @@ interface NumberConstructor { */ parseInt(string: string, radix?: number): number; } -// /** -// * Returns true if passed value is finite. -// * Unlike the global isFinite, Number.isFinite doesn't forcibly convert the parameter to a -// * number. Only finite values of the type number, result in true. -// * @param number A numeric value. -// */ -// isFinite(number: unknown): boolean; -// /** -// * Returns true if the value passed is an integer, false otherwise. -// * @param number A numeric value. -// */ -// isInteger(number: unknown): boolean; -// /** -// * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a -// * number). Unlike the global isNaN(), Number.isNaN() doesn't forcefully convert the parameter -// * to a number. Only values of the type number, that are also NaN, result in true. -// * @param number A numeric value. -// */ -// isNaN(number: unknown): boolean; -// /** -// * Returns true if the value passed is a safe integer. -// * @param number A numeric value. -// */ -// isSafeInteger(number: unknown): boolean; interface ObjectConstructor { /** diff --git a/lib/lib.es2015.core.d.ts b/lib/lib.es2015.core.d.ts index 5cf8d74..f05c504 100644 --- a/lib/lib.es2015.core.d.ts +++ b/lib/lib.es2015.core.d.ts @@ -62,36 +62,6 @@ interface ArrayConstructor { ): U[]; } -interface NumberConstructor { - /** - * Returns true if passed value is finite. - * Unlike the global isFinite, Number.isFinite doesn't forcibly convert the parameter to a - * number. Only finite values of the type number, result in true. - * @param number A numeric value. - */ - isFinite(number: unknown): number is number; - - /** - * Returns true if the value passed is an integer, false otherwise. - * @param number A numeric value. - */ - isInteger(number: unknown): number is number; - - /** - * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a - * number). Unlike the global isNaN(), Number.isNaN() doesn't forcefully convert the parameter - * to a number. Only values of the type number, that are also NaN, result in true. - * @param number A numeric value. - */ - isNaN(number: unknown): number is number; - - /** - * Returns true if the value passed is a safe integer. - * @param number A numeric value. - */ - isSafeInteger(number: unknown): number is number; -} - interface ObjectConstructor { /** * Copy the values of all of the enumerable own properties from one or more source objects to a diff --git a/tests/src/es2015.core.ts b/tests/src/es2015.core.ts index ddf9bbb..48604b0 100644 --- a/tests/src/es2015.core.ts +++ b/tests/src/es2015.core.ts @@ -16,24 +16,6 @@ import { expectError, expectType } from "tsd"; expectError(a1.findIndex((x) => x)); } -// NumberConstructor -{ - const n: unknown = "123"; - - if (Number.isFinite(n)) { - expectType(n); - } - if (Number.isInteger(n)) { - expectType(n); - } - if (Number.isNaN(n)) { - expectType(n); - } - if (Number.isSafeInteger(n)) { - expectType(n); - } -} - // ObjectConstructor { expectError(Object.assign(null));