/** ***************************************** * 元子函数 ***************************************** */ 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] ? [(argv: R) => R, V] : T extends [argv1: infer U, argv2: infer V, ...rest: infer W] ? [(argv: R) => R, ...Fn<[V, ...W]>] : P[]); /** ***************************************** * 组合函数 ***************************************** */ declare type Componse = (T extends [] ? () => void : T extends [infer U] ? U : T extends [head: infer V, ...rest: unknown[], tail: infer U] ? (argv: A) => R : () => void); /** ***************************************** * 组合函数 ***************************************** */ export declare function compose(...args: Fn): Componse; export {}; //# sourceMappingURL=compose.d.ts.map