/** ***************************************** * 加载依赖 ***************************************** */ import { U } from './d'; /** ***************************************** * 参数 ***************************************** */ declare type Args = (P extends T ? T : T extends [] ? [] : T extends [U] ? [P[0]] : T extends [...rest: infer W, last: U] ? [...Args, P[W['length']]] : P); /** ***************************************** * 处理函数 ***************************************** */ declare type Handler = (...args: T) => P; /** ***************************************** * 柯里化 ***************************************** */ declare type Curry = (T extends [] ? () => P : T extends [infer V] ? (argv: V) => P : Curried); /** ***************************************** * 柯里化函数 ***************************************** */ interface Curried { (...args: Args): (T extends [...args: I, ...rest: infer R] ? Curry : never); } /** ***************************************** * 柯里化 ***************************************** */ export declare function curry(handler: Handler): Curry; export {}; //# sourceMappingURL=curry.d.ts.map