bind-defaults
Version:
A utility for enhancing functions by binding default values to their first parameter
5 lines (4 loc) • 491 B
TypeScript
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 {};