Type alias CurriedFn<TAllArgs, TReturn>
CurriedFn<TAllArgs, TReturn>: (<TProvidedArgs>(...args) => TProvidedArgs extends TAllArgs ? TReturn : TAllArgs extends [...TupleOfLength<TProvidedArgs>, ...(infer TRestOfArgs)] ? CurriedFn<TRestOfArgs, TReturn> : never) Type Parameters
TAllArgs extends any[]
TReturn
Type declaration
- <TProvidedArgs>(...args): TProvidedArgs extends TAllArgs
? TReturn
: TAllArgs extends [...TupleOfLength<TProvidedArgs>, ...(infer TRestOfArgs)]
? CurriedFn<TRestOfArgs, TReturn>
: never Type Parameters
TProvidedArgs extends TAllArgs extends [infer TFirstArg, ...(infer TRestOfArgs)]
? [TFirstArg, ...Partial<TRestOfArgs>]
: never
Parameters
Rest
...args: TProvidedArgs
Returns TProvidedArgs extends TAllArgs
? TReturn
: TAllArgs extends [...TupleOfLength<TProvidedArgs>, ...(infer TRestOfArgs)]
? CurriedFn<TRestOfArgs, TReturn>
: never