/** ***************************************** * 未知类型 ***************************************** */ export declare type U = unknown; /** ***************************************** * 未知对象 ***************************************** */ export declare type O = { [key: string]: U; }; /** ***************************************** * 函数 ***************************************** */ export declare type F = (...args: any[]) => unknown; /** ***************************************** * 函数重载参数列表 ***************************************** */ export declare type FOP = (T extends { (...args: infer P1): void; (...args: infer P2): void; (...args: infer P3): void; (...args: infer P4): void; (...args: infer P5): void; (...args: infer P6): void; (...args: infer P7): void; (...args: infer P8): void; } ? [P1, P2, P3, P4, P5, P6, P7, P8] : T extends { (...args: infer P1): void; (...args: infer P2): void; (...args: infer P3): void; (...args: infer P4): void; (...args: infer P5): void; (...args: infer P6): void; (...args: infer P7): void; } ? [P1, P2, P3, P4, P5, P6, P7] : T extends { (...args: infer P1): void; (...args: infer P2): void; (...args: infer P3): void; (...args: infer P4): void; (...args: infer P5): void; (...args: infer P6): void; } ? [P1, P2, P3, P4, P5, P6] : T extends { (...args: infer P1): void; (...args: infer P2): void; (...args: infer P3): void; (...args: infer P4): void; (...args: infer P5): void; } ? [P1, P2, P3, P4, P5] : T extends { (...args: infer P1): void; (...args: infer P2): void; (...args: infer P3): void; (...args: infer P4): void; } ? [P1, P2, P3, P4] : T extends { (...args: infer P1): void; (...args: infer P2): void; (...args: infer P3): void; } ? [P1, P2, P3] : T extends { (...args: infer P1): void; (...args: infer P2): void; } ? [P1, P2] : T extends { (...args: infer P1): void; } ? [P1] : []); /** ***************************************** * 首位 ***************************************** */ export declare type Head = (T extends [head: infer V, ...rest: U[]] ? V : never); /** ***************************************** * 末位 ***************************************** */ export declare type Tail = (T extends [...rest: U[], tail: infer V] ? V : never); /** ***************************************** * 去首 ***************************************** */ export declare type Shift = (T extends [head: U, ...rest: infer V] ? V : []); /** ***************************************** * 压入栈首 ***************************************** */ export declare type Unshift = (T extends [...rest: infer V, tail: infer W] ? [...Unshift, W] : [P]); /** ***************************************** * 去尾 ***************************************** */ export declare type Pop = (T extends [...rest: infer V, tail: U] ? V : []); /** ***************************************** * 压入栈尾 ***************************************** */ export declare type Push = (T extends [head: infer V, ...rest: infer W] ? [V, ...Push] : [P]); /** ***************************************** * 查找 ***************************************** */ export declare type Find = (T extends [head: infer V, ...rest: infer W] ? P extends V ? V : Find : Q); /** ***************************************** * 合并属性 ***************************************** */ export declare type Extend = { [K in keyof (T & P)]: (K extends keyof P ? P[K] : K extends keyof T ? T[K] : never); }; //# sourceMappingURL=d.d.ts.map