Type aliases
Cast
Cast<X, Y>: X extends Y ? X : Y
Type parameters
CleanedGaps
CleanedGaps<T>: { [ K in keyof T]: NonNullable<T[K]> }
Type parameters
Curry
Curry
<F>: <T>(...args
: Cast<T, Gaps<Parameters<F>>>) => GapsOf<T, Parameters<F>> extends [any, ...any[]] ? Curry<(...args
: Cast<GapsOf<T, Parameters<F>>, any[]>) => ReturnType<F>> : ReturnType<F>Type parameters
Type declaration
- <T>(...args: Cast<T, Gaps<Parameters<F>>>): GapsOf<T, Parameters<F>> extends [any, ...any[]] ? Curry<(...args: Cast<GapsOf<T, Parameters<F>>, any[]>) => ReturnType<F>> : ReturnType<F>
Type parameters
Parameters
Rest ...args: Cast<T, Gaps<Parameters<F>>>
Returns GapsOf<T, Parameters<F>> extends [any, ...any[]] ? Curry<(...args: Cast<GapsOf<T, Parameters<F>>, any[]>) => ReturnType<F>> : ReturnType<F>
Drop
Type parameters
N: number
T: any[]
I: any[] = []
GapOf
Type parameters
T1: any[]
T2: any[]
TN: any[]
I: any[]
GapsOf
Gaps
Of
<T1, T2, TN, I>: Pos<I> extends Length<T1> ? Concat<TN, Cast<Drop<Pos<I>, T2>, any[]>> : GapsOf<T1, T2, Cast<GapOf<T1, T2, TN, I>, any[]>, Next<I>>Type parameters
T1: any[]
T2: any[]
TN: any[] = []
I: any[] = []
HasTail
Has
Tail
<T>: Length<T> extends 0 | 1 ? false : trueType parameters
Head
Head<T>: T extends [infer H, ...any[]] ? H : never
Type parameters
Length
Length<T>: T["length"]
Type parameters
PartialGaps
Partial
Gaps
<T>: { [ K in keyof T]?: T[K] | TB.__ }Type parameters
Prepend
Prepend<E, T>: [E, ...T]
Type parameters
Reverse
Type parameters
T: any[]
R: any[] = []
I: any[] = []
Tail
Tail<T>: T extends [any, ...infer TT] ? TT : []
Type parameters
Type
Type<A, ID>: A & { [ K in "symbol"]: ID }
Type parameters