froebel
Version:
TypeScript utility library
18 lines (17 loc) • 547 B
TypeScript
import type { PartialList, λ } from "./types";
/**
* Partially apply a function.
*
* @example
* ```
* const divide = (dividend: number, divisor: number) => dividend / divisor
*
* // (divisor: number) => number
* const oneOver = partial(divide, 1)
*
* // prints: 0.25
* console.log(oneOver(4))
* ```
*/
declare const partial: <T extends λ<any[], any>, PL extends PartialList<Parameters<T>>>(fun: T, ...argsLeft: PL) => (...argsRight: Parameters<T> extends [...PL, ...infer PR] ? PR : never) => ReturnType<T>;
export default partial;