UNPKG

bind-defaults

Version:

A utility for enhancing functions by binding default values to their first parameter

5 lines (4 loc) 491 B
type FirstParameter<T extends (...args: any[]) => any> = Parameters<T>[0]; type TailParameters<T extends (...args: any[]) => any> = T extends (first: any, ...rest: infer Rest) => any ? Rest : never; export declare function bindDefaults<F extends (options: FirstParameter<F>, ...args: TailParameters<F>) => ReturnType<F>>(originalFunction: F, defaults: Partial<FirstParameter<F>>): (this: unknown, options: Partial<FirstParameter<F>>, ...args: TailParameters<F>) => ReturnType<F>; export {};