/** ***************************************** * 元子函数 ***************************************** */ declare type P = (state: unknown) => unknown; /** ***************************************** * 函数参数 ***************************************** */ declare type A = T extends (argv: infer P) => unknown ? P : never; /** ***************************************** * 函数返回值 ***************************************** */ declare type R = T extends (argv: unknown) => infer P ? P : void; /** ***************************************** * 函数列表 ***************************************** */ declare type Fn = (T extends [] ? [] : T extends [P] ? T : T extends [infer U, infer V] ? [U, (argv: R) => R] : T extends [...rest: infer W, argv1: infer U, argv2: infer V] ? [...Fn<[...W, U]>, (argv: R) => R] : P[]); /** ***************************************** * 组合函数 ***************************************** */ declare type Flow = (T extends [] ? () => void : T extends [infer U] ? U : T extends [head: infer U, ...rest: unknown[], tail: infer V] ? (argv: A) => R : () => void); /** ***************************************** * 组合函数 ***************************************** */ export declare function flow(...args: Fn): Flow; export {}; //# sourceMappingURL=flow.d.ts.map