tsargs
Version:
typescript function arguments utils
272 lines (256 loc) • 30.8 kB
text/typescript
import * as pre from './pre';
// tslint:disable
/*
Generator:
function genX(n) {
return `export type Pre${n}ArgN<${repeat('Pre', n)}, T extends (...args: any[]) => any> =
T extends (${args('pre', undefined, 'Pre', n)}, arg1: infer A) => any ?
T extends (${args('pre', undefined, 'Pre', n)}, arg1: infer A, arg2: infer B) => any ?
T extends (${args('pre', undefined, 'Pre', n)}, arg1: infer A, arg2: infer B, arg3: infer C) => any ?
T extends (${args('pre', undefined, 'Pre', n)}, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D) => any ?
T extends (${args('pre', undefined, 'Pre', n)}, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E) => any ?
T extends (${args('pre', undefined, 'Pre', n)}, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F) => any ?
T extends (${args('pre', undefined, 'Pre', n)}, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G) => any ?
T extends (${args('pre', undefined, 'Pre', n)}, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H) => any ?
T extends (${args('pre', undefined, 'Pre', n)}, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H, arg9: infer I) => any ?
T extends (${args('pre', undefined, 'Pre', n)}, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H, arg9: infer I, arg10: infer J) => any ?
pre.Pre${n}Arg10<${repeat('Pre', n)}, T> :
pre.Pre${n}Arg9<${repeat('Pre', n)}, T> :
pre.Pre${n}Arg8<${repeat('Pre', n)}, T> :
pre.Pre${n}Arg7<${repeat('Pre', n)}, T> :
pre.Pre${n}Arg6<${repeat('Pre', n)}, T> :
pre.Pre${n}Arg5<${repeat('Pre', n)}, T> :
pre.Pre${n}Arg4<${repeat('Pre', n)}, T> :
pre.Pre${n}Arg3<${repeat('Pre', n)}, T> :
pre.Pre${n}Arg2<${repeat('Pre', n)}, T> :
pre.Pre${n}Arg1<${repeat('Pre', n)}, T> :
(${args('pre', undefined, 'Pre', n)}) => ReturnType<T>;`;
}
function genXN(n) {
var a = [];
for (let i = 1; i <= 10; ++i) {
a.push(genX(i))
}
return a.join('\n\n');
}
*/
export type Pre1ArgN<Pre1, T extends (...args: any[]) => any> =
T extends (pre1: Pre1, arg1: infer A) => any ?
T extends (pre1: Pre1, arg1: infer A, arg2: infer B) => any ?
T extends (pre1: Pre1, arg1: infer A, arg2: infer B, arg3: infer C) => any ?
T extends (pre1: Pre1, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D) => any ?
T extends (pre1: Pre1, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E) => any ?
T extends (pre1: Pre1, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F) => any ?
T extends (pre1: Pre1, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G) => any ?
T extends (pre1: Pre1, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H) => any ?
T extends (pre1: Pre1, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H, arg9: infer I) => any ?
T extends (pre1: Pre1, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H, arg9: infer I, arg10: infer J) => any ?
pre.Pre1Arg10<Pre1, T> :
pre.Pre1Arg9<Pre1, T> :
pre.Pre1Arg8<Pre1, T> :
pre.Pre1Arg7<Pre1, T> :
pre.Pre1Arg6<Pre1, T> :
pre.Pre1Arg5<Pre1, T> :
pre.Pre1Arg4<Pre1, T> :
pre.Pre1Arg3<Pre1, T> :
pre.Pre1Arg2<Pre1, T> :
pre.Pre1Arg1<Pre1, T> :
(pre1: Pre1) => ReturnType<T>;
export type Pre2ArgN<Pre1, Pre2, T extends (...args: any[]) => any> =
T extends (pre1: Pre1, pre2: Pre2, arg1: infer A) => any ?
T extends (pre1: Pre1, pre2: Pre2, arg1: infer A, arg2: infer B) => any ?
T extends (pre1: Pre1, pre2: Pre2, arg1: infer A, arg2: infer B, arg3: infer C) => any ?
T extends (pre1: Pre1, pre2: Pre2, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D) => any ?
T extends (pre1: Pre1, pre2: Pre2, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E) => any ?
T extends (pre1: Pre1, pre2: Pre2, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F) => any ?
T extends (pre1: Pre1, pre2: Pre2, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G) => any ?
T extends (pre1: Pre1, pre2: Pre2, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H) => any ?
T extends (pre1: Pre1, pre2: Pre2, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H, arg9: infer I) => any ?
T extends (pre1: Pre1, pre2: Pre2, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H, arg9: infer I, arg10: infer J) => any ?
pre.Pre2Arg10<Pre1, Pre2, T> :
pre.Pre2Arg9<Pre1, Pre2, T> :
pre.Pre2Arg8<Pre1, Pre2, T> :
pre.Pre2Arg7<Pre1, Pre2, T> :
pre.Pre2Arg6<Pre1, Pre2, T> :
pre.Pre2Arg5<Pre1, Pre2, T> :
pre.Pre2Arg4<Pre1, Pre2, T> :
pre.Pre2Arg3<Pre1, Pre2, T> :
pre.Pre2Arg2<Pre1, Pre2, T> :
pre.Pre2Arg1<Pre1, Pre2, T> :
(pre1: Pre1, pre2: Pre2) => ReturnType<T>;
export type Pre3ArgN<Pre1, Pre2, Pre3, T extends (...args: any[]) => any> =
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, arg1: infer A) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, arg1: infer A, arg2: infer B) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, arg1: infer A, arg2: infer B, arg3: infer C) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H, arg9: infer I) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H, arg9: infer I, arg10: infer J) => any ?
pre.Pre3Arg10<Pre1, Pre2, Pre3, T> :
pre.Pre3Arg9<Pre1, Pre2, Pre3, T> :
pre.Pre3Arg8<Pre1, Pre2, Pre3, T> :
pre.Pre3Arg7<Pre1, Pre2, Pre3, T> :
pre.Pre3Arg6<Pre1, Pre2, Pre3, T> :
pre.Pre3Arg5<Pre1, Pre2, Pre3, T> :
pre.Pre3Arg4<Pre1, Pre2, Pre3, T> :
pre.Pre3Arg3<Pre1, Pre2, Pre3, T> :
pre.Pre3Arg2<Pre1, Pre2, Pre3, T> :
pre.Pre3Arg1<Pre1, Pre2, Pre3, T> :
(pre1: Pre1, pre2: Pre2, pre3: Pre3) => ReturnType<T>;
export type Pre4ArgN<Pre1, Pre2, Pre3, Pre4, T extends (...args: any[]) => any> =
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, arg1: infer A) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, arg1: infer A, arg2: infer B) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, arg1: infer A, arg2: infer B, arg3: infer C) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H, arg9: infer I) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H, arg9: infer I, arg10: infer J) => any ?
pre.Pre4Arg10<Pre1, Pre2, Pre3, Pre4, T> :
pre.Pre4Arg9<Pre1, Pre2, Pre3, Pre4, T> :
pre.Pre4Arg8<Pre1, Pre2, Pre3, Pre4, T> :
pre.Pre4Arg7<Pre1, Pre2, Pre3, Pre4, T> :
pre.Pre4Arg6<Pre1, Pre2, Pre3, Pre4, T> :
pre.Pre4Arg5<Pre1, Pre2, Pre3, Pre4, T> :
pre.Pre4Arg4<Pre1, Pre2, Pre3, Pre4, T> :
pre.Pre4Arg3<Pre1, Pre2, Pre3, Pre4, T> :
pre.Pre4Arg2<Pre1, Pre2, Pre3, Pre4, T> :
pre.Pre4Arg1<Pre1, Pre2, Pre3, Pre4, T> :
(pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4) => ReturnType<T>;
export type Pre5ArgN<Pre1, Pre2, Pre3, Pre4, Pre5, T extends (...args: any[]) => any> =
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, arg1: infer A) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, arg1: infer A, arg2: infer B) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, arg1: infer A, arg2: infer B, arg3: infer C) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H, arg9: infer I) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H, arg9: infer I, arg10: infer J) => any ?
pre.Pre5Arg10<Pre1, Pre2, Pre3, Pre4, Pre5, T> :
pre.Pre5Arg9<Pre1, Pre2, Pre3, Pre4, Pre5, T> :
pre.Pre5Arg8<Pre1, Pre2, Pre3, Pre4, Pre5, T> :
pre.Pre5Arg7<Pre1, Pre2, Pre3, Pre4, Pre5, T> :
pre.Pre5Arg6<Pre1, Pre2, Pre3, Pre4, Pre5, T> :
pre.Pre5Arg5<Pre1, Pre2, Pre3, Pre4, Pre5, T> :
pre.Pre5Arg4<Pre1, Pre2, Pre3, Pre4, Pre5, T> :
pre.Pre5Arg3<Pre1, Pre2, Pre3, Pre4, Pre5, T> :
pre.Pre5Arg2<Pre1, Pre2, Pre3, Pre4, Pre5, T> :
pre.Pre5Arg1<Pre1, Pre2, Pre3, Pre4, Pre5, T> :
(pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5) => ReturnType<T>;
export type Pre6ArgN<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, T extends (...args: any[]) => any> =
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, arg1: infer A) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, arg1: infer A, arg2: infer B) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, arg1: infer A, arg2: infer B, arg3: infer C) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H, arg9: infer I) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H, arg9: infer I, arg10: infer J) => any ?
pre.Pre6Arg10<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, T> :
pre.Pre6Arg9<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, T> :
pre.Pre6Arg8<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, T> :
pre.Pre6Arg7<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, T> :
pre.Pre6Arg6<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, T> :
pre.Pre6Arg5<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, T> :
pre.Pre6Arg4<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, T> :
pre.Pre6Arg3<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, T> :
pre.Pre6Arg2<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, T> :
pre.Pre6Arg1<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, T> :
(pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6) => ReturnType<T>;
export type Pre7ArgN<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, T extends (...args: any[]) => any> =
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, arg1: infer A) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, arg1: infer A, arg2: infer B) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, arg1: infer A, arg2: infer B, arg3: infer C) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H, arg9: infer I) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H, arg9: infer I, arg10: infer J) => any ?
pre.Pre7Arg10<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, T> :
pre.Pre7Arg9<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, T> :
pre.Pre7Arg8<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, T> :
pre.Pre7Arg7<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, T> :
pre.Pre7Arg6<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, T> :
pre.Pre7Arg5<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, T> :
pre.Pre7Arg4<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, T> :
pre.Pre7Arg3<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, T> :
pre.Pre7Arg2<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, T> :
pre.Pre7Arg1<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, T> :
(pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7) => ReturnType<T>;
export type Pre8ArgN<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, T extends (...args: any[]) => any> =
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, arg1: infer A) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, arg1: infer A, arg2: infer B) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, arg1: infer A, arg2: infer B, arg3: infer C) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H, arg9: infer I) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H, arg9: infer I, arg10: infer J) => any ?
pre.Pre8Arg10<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, T> :
pre.Pre8Arg9<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, T> :
pre.Pre8Arg8<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, T> :
pre.Pre8Arg7<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, T> :
pre.Pre8Arg6<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, T> :
pre.Pre8Arg5<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, T> :
pre.Pre8Arg4<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, T> :
pre.Pre8Arg3<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, T> :
pre.Pre8Arg2<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, T> :
pre.Pre8Arg1<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, T> :
(pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8) => ReturnType<T>;
export type Pre9ArgN<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, Pre9, T extends (...args: any[]) => any> =
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, pre9: Pre9, arg1: infer A) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, pre9: Pre9, arg1: infer A, arg2: infer B) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, pre9: Pre9, arg1: infer A, arg2: infer B, arg3: infer C) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, pre9: Pre9, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, pre9: Pre9, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, pre9: Pre9, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, pre9: Pre9, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, pre9: Pre9, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, pre9: Pre9, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H, arg9: infer I) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, pre9: Pre9, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H, arg9: infer I, arg10: infer J) => any ?
pre.Pre9Arg10<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, Pre9, T> :
pre.Pre9Arg9<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, Pre9, T> :
pre.Pre9Arg8<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, Pre9, T> :
pre.Pre9Arg7<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, Pre9, T> :
pre.Pre9Arg6<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, Pre9, T> :
pre.Pre9Arg5<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, Pre9, T> :
pre.Pre9Arg4<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, Pre9, T> :
pre.Pre9Arg3<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, Pre9, T> :
pre.Pre9Arg2<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, Pre9, T> :
pre.Pre9Arg1<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, Pre9, T> :
(pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, pre9: Pre9) => ReturnType<T>;
export type Pre10ArgN<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, Pre9, Pre10, T extends (...args: any[]) => any> =
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, pre9: Pre9, pre10: Pre10, arg1: infer A) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, pre9: Pre9, pre10: Pre10, arg1: infer A, arg2: infer B) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, pre9: Pre9, pre10: Pre10, arg1: infer A, arg2: infer B, arg3: infer C) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, pre9: Pre9, pre10: Pre10, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, pre9: Pre9, pre10: Pre10, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, pre9: Pre9, pre10: Pre10, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, pre9: Pre9, pre10: Pre10, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, pre9: Pre9, pre10: Pre10, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, pre9: Pre9, pre10: Pre10, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H, arg9: infer I) => any ?
T extends (pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, pre9: Pre9, pre10: Pre10, arg1: infer A, arg2: infer B, arg3: infer C, arg4: infer D, arg5: infer E, arg6: infer F, arg7: infer G, arg8: infer H, arg9: infer I, arg10: infer J) => any ?
pre.Pre10Arg10<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, Pre9, Pre10, T> :
pre.Pre10Arg9<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, Pre9, Pre10, T> :
pre.Pre10Arg8<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, Pre9, Pre10, T> :
pre.Pre10Arg7<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, Pre9, Pre10, T> :
pre.Pre10Arg6<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, Pre9, Pre10, T> :
pre.Pre10Arg5<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, Pre9, Pre10, T> :
pre.Pre10Arg4<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, Pre9, Pre10, T> :
pre.Pre10Arg3<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, Pre9, Pre10, T> :
pre.Pre10Arg2<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, Pre9, Pre10, T> :
pre.Pre10Arg1<Pre1, Pre2, Pre3, Pre4, Pre5, Pre6, Pre7, Pre8, Pre9, Pre10, T> :
(pre1: Pre1, pre2: Pre2, pre3: Pre3, pre4: Pre4, pre5: Pre5, pre6: Pre6, pre7: Pre7, pre8: Pre8, pre9: Pre9, pre10: Pre10) => ReturnType<T>;