UNPKG

froebel

Version:
18 lines (17 loc) 547 B
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;