Skip to content

Commit

Permalink
fix: remove strong NumberConstructor type guards
Browse files Browse the repository at this point in the history
fixes #14
  • Loading branch information
uhyo committed Dec 5, 2022
1 parent aa529c8 commit 3dd4dbd
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 76 deletions.
33 changes: 5 additions & 28 deletions generated/lib.es2015.core.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -253,33 +253,34 @@ 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
* 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;
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
Expand Down Expand Up @@ -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 {
/**
Expand Down
30 changes: 0 additions & 30 deletions lib/lib.es2015.core.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
18 changes: 0 additions & 18 deletions tests/src/es2015.core.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,24 +16,6 @@ import { expectError, expectType } from "tsd";
expectError(a1.findIndex((x) => x));
}

// NumberConstructor
{
const n: unknown = "123";

if (Number.isFinite(n)) {
expectType<number>(n);
}
if (Number.isInteger(n)) {
expectType<number>(n);
}
if (Number.isNaN(n)) {
expectType<number>(n);
}
if (Number.isSafeInteger(n)) {
expectType<number>(n);
}
}

// ObjectConstructor
{
expectError(Object.assign(null));
Expand Down

0 comments on commit 3dd4dbd

Please sign in to comment.