type-fest
Advanced tools
Comparing version 4.10.1 to 4.10.2
{ | ||
"name": "type-fest", | ||
"version": "4.10.1", | ||
"version": "4.10.2", | ||
"description": "A collection of essential TypeScript types", | ||
@@ -5,0 +5,0 @@ "license": "(MIT OR CC0-1.0)", |
@@ -66,2 +66,5 @@ import type {ConditionalSimplifyDeep} from './conditional-simplify'; | ||
// Helper to avoid computing ArrayTail twice. | ||
type PickRestTypeHelper<Tail extends UnknownArrayOrTuple, Type> = Tail extends [] ? Type : PickRestType<Tail>; | ||
/** | ||
@@ -80,5 +83,14 @@ Pick the rest type. | ||
type PickRestType<Type extends UnknownArrayOrTuple> = number extends Type['length'] | ||
? ArrayTail<Type> extends [] ? Type : PickRestType<ArrayTail<Type>> | ||
? PickRestTypeHelper<ArrayTail<Type>, Type> | ||
: []; | ||
// Helper to avoid computing ArrayTail twice. | ||
type OmitRestTypeHelper< | ||
Tail extends UnknownArrayOrTuple, | ||
Type extends UnknownArrayOrTuple, | ||
Result extends UnknownArrayOrTuple = [], | ||
> = Tail extends [] | ||
? Result | ||
: OmitRestType<Tail, [...Result, FirstArrayElement<Type>]>; | ||
/** | ||
@@ -98,3 +110,3 @@ Omit the rest type. | ||
type OmitRestType<Type extends UnknownArrayOrTuple, Result extends UnknownArrayOrTuple = []> = number extends Type['length'] | ||
? ArrayTail<Type> extends [] ? Result : OmitRestType<ArrayTail<Type>, [...Result, FirstArrayElement<Type>]> | ||
? OmitRestTypeHelper<ArrayTail<Type>, Type, Result> | ||
: Type; | ||
@@ -101,0 +113,0 @@ |
320086
7523