Skip to content

Commit

Permalink
feat: use type predicates for narrowing
Browse files Browse the repository at this point in the history
  • Loading branch information
Planeshifter committed Jun 28, 2023
1 parent 3c153c4 commit b121c69
Show file tree
Hide file tree
Showing 11 changed files with 19 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ type Comparison = 'open' | 'closed';
* var bool = isBetweenArray( arr, 3.0, 4.0, 'closed', 'open' );
* // returns false
*/
declare function isBetweenArray( value: any, a: any, b: any, left?: Comparison, right?: Comparison ): boolean; // tslint-disable-line max-line-length
declare function isBetweenArray( value: any, a: any, b: any, left?: Comparison, right?: Comparison ): value is ArrayLike<number>; // tslint-disable-line max-line-length


// EXPORTS //
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ type Comparison = 'open' | 'closed';
* var bool = isBetween( 3.14, 3.0, 3.14, 'closed', 'open' );
* // returns false
*/
declare function isBetween( value: any, a: any, b: any, left?: Comparison, right?: Comparison ): boolean; // tslint-disable-line max-line-length
declare function isBetween( value: any, a: any, b: any, left?: Comparison, right?: Comparison ): value is number; // tslint-disable-line max-line-length


// EXPORTS //
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ interface IsBigInt {
* var bool = isBigInt( {} );
* // returns false
*/
( value: any ): boolean;
( value: any ): value is bigint | BigInt;

/**
* Tests if a value is a BigInt primitive.
Expand All @@ -68,7 +68,7 @@ interface IsBigInt {
* var bool = isBigInt.isPrimitive( {} );
* // returns false
*/
isPrimitive( value: any ): boolean;
isPrimitive( value: any ): value is bigint;

/**
* Tests if a value is a BigInt object.
Expand All @@ -92,7 +92,7 @@ interface IsBigInt {
* var bool = isBigInt.isObject( {} );
* // returns false
*/
isObject( value: any ): boolean;
isObject( value: any ): value is BigInt;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
* var bool = isBigInt64Array( [] );
* // returns false
*/
declare function isBigInt64Array( value: any ): boolean;
declare function isBigInt64Array( value: any ): value is BigInt64Array;


// EXPORTS //
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
* var bool = isBigUint64Array( [] );
* // returns false
*/
declare function isBigUint64Array( value: any ): boolean;
declare function isBigUint64Array( value: any ): value is BigUint64Array;


// EXPORTS //
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
* var bool = isBinaryString( '' );
* // returns false
*/
declare function isBinaryString( value: any ): boolean;
declare function isBinaryString( value: any ): value is string;


// EXPORTS //
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
* var bool = isBlankString( 'beep' );
* // returns false
*/
declare function isBlankString( value: any ): boolean;
declare function isBlankString( value: any ): value is string;


// EXPORTS //
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ interface IsBooleanArray {
* var bool = isBooleanArray( [ true, 'abc', false ] );
* // returns false
*/
( value: any ): boolean;
( value: any ): value is Array<boolean|Boolean>;

/**
* Tests if a value is an array-like object containing only boolean primitives.
Expand All @@ -54,7 +54,7 @@ interface IsBooleanArray {
* var bool = isBooleanArray.primitives( [ false, new Boolean( true ) ] );
* // returns false
*/
primitives( value: any ): boolean;
primitives( value: any ): value is Array<boolean>;

/**
* Tests if a value is an array-like object containing only Boolean objects.
Expand All @@ -74,7 +74,7 @@ interface IsBooleanArray {
* var bool = isBooleanArray.objects( [ new Boolean( false ), true ] );
* // returns false
*/
objects( value: any ): boolean;
objects( value: any ): value is Array<Boolean>;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ interface IsBoolean {
* var bool = isBoolean( new Boolean( true ) );
* // returns true
*/
( value: any ): boolean;
( value: any ): value is boolean | Boolean;

/**
* Tests if a value is a boolean primitive.
Expand All @@ -70,7 +70,7 @@ interface IsBoolean {
* var bool = isBoolean.isPrimitive( new Boolean( true ) );
* // returns false
*/
isPrimitive( value: any ): boolean;
isPrimitive( value: any ): value is boolean;

/**
* Tests if a value is a boolean object.
Expand All @@ -88,7 +88,7 @@ interface IsBoolean {
* var bool = isBoolean.isObject( new Boolean( false ) );
* // returns true
*/
isObject( value: any ): boolean;
isObject( value: any ): value is Boolean;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
* var bool = isBoxedPrimitive( Symbol( 'beep' ) );
* // returns false
*/
declare function isBoxedPrimitive( value: any ): boolean;
declare function isBoxedPrimitive( value: any ): value is String | Number | Boolean | Symbol; // tslint:disable-line:max-line-length


// EXPORTS //
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@

// TypeScript Version: 2.0

/// <reference types="@types/node"/>

/**
* Tests if a value is a Buffer instance.
*
Expand All @@ -40,7 +42,7 @@
* var v = isBuffer( [] );
* // returns false
*/
declare function isBuffer( value: any ): boolean;
declare function isBuffer( value: any ): value is Buffer;


// EXPORTS //
Expand Down

0 comments on commit b121c69

Please sign in to comment.