tsargs
Version:
typescript function arguments utils
132 lines (124 loc) • 31.2 kB
text/typescript
import * as pick from './pick';
// tslint:disable
/*
Generator:
function args(prefix, type, typePrefix, n, post='') {
var a = [];
for (let i = 1; i <= n; ++i) a.push(`${prefix}${i}: ${type || typePrefix + i}${post}`);
return a.join(', ');
}
function repeat(prefix, n) {
var a = [];
for (let i = 1; i <= n; ++i) a.push(`${prefix}${i}`);
return a.join(', ');
}
function gen() {
var result = [];
for (let ipre = 1; ipre <= 10; ++ipre) {
for (let iarg = 1; iarg <= 10; ++iarg) {
result.push(`export type Post${ipre}Arg${iarg}<${repeat('Post', ipre)}, T extends (...args: any[]) => any> = (${args('arg', undefined, 'Arg', iarg, '<T>')}, ${args('post', undefined, 'Post', ipre)}) => ReturnType<T>;`);
}
}
return result.join('\n');
}
*/
export type Post1Arg1<Post1, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, post1: Post1) => ReturnType<T>;
export type Post1Arg2<Post1, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, post1: Post1) => ReturnType<T>;
export type Post1Arg3<Post1, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, post1: Post1) => ReturnType<T>;
export type Post1Arg4<Post1, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, post1: Post1) => ReturnType<T>;
export type Post1Arg5<Post1, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, post1: Post1) => ReturnType<T>;
export type Post1Arg6<Post1, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, post1: Post1) => ReturnType<T>;
export type Post1Arg7<Post1, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, post1: Post1) => ReturnType<T>;
export type Post1Arg8<Post1, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, post1: Post1) => ReturnType<T>;
export type Post1Arg9<Post1, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, arg9: pick.Arg9<T>, post1: Post1) => ReturnType<T>;
export type Post1Arg10<Post1, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, arg9: pick.Arg9<T>, arg10: pick.Arg10<T>, post1: Post1) => ReturnType<T>;
export type Post2Arg1<Post1, Post2, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, post1: Post1, post2: Post2) => ReturnType<T>;
export type Post2Arg2<Post1, Post2, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, post1: Post1, post2: Post2) => ReturnType<T>;
export type Post2Arg3<Post1, Post2, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, post1: Post1, post2: Post2) => ReturnType<T>;
export type Post2Arg4<Post1, Post2, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, post1: Post1, post2: Post2) => ReturnType<T>;
export type Post2Arg5<Post1, Post2, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, post1: Post1, post2: Post2) => ReturnType<T>;
export type Post2Arg6<Post1, Post2, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, post1: Post1, post2: Post2) => ReturnType<T>;
export type Post2Arg7<Post1, Post2, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, post1: Post1, post2: Post2) => ReturnType<T>;
export type Post2Arg8<Post1, Post2, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, post1: Post1, post2: Post2) => ReturnType<T>;
export type Post2Arg9<Post1, Post2, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, arg9: pick.Arg9<T>, post1: Post1, post2: Post2) => ReturnType<T>;
export type Post2Arg10<Post1, Post2, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, arg9: pick.Arg9<T>, arg10: pick.Arg10<T>, post1: Post1, post2: Post2) => ReturnType<T>;
export type Post3Arg1<Post1, Post2, Post3, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, post1: Post1, post2: Post2, post3: Post3) => ReturnType<T>;
export type Post3Arg2<Post1, Post2, Post3, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, post1: Post1, post2: Post2, post3: Post3) => ReturnType<T>;
export type Post3Arg3<Post1, Post2, Post3, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, post1: Post1, post2: Post2, post3: Post3) => ReturnType<T>;
export type Post3Arg4<Post1, Post2, Post3, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, post1: Post1, post2: Post2, post3: Post3) => ReturnType<T>;
export type Post3Arg5<Post1, Post2, Post3, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, post1: Post1, post2: Post2, post3: Post3) => ReturnType<T>;
export type Post3Arg6<Post1, Post2, Post3, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, post1: Post1, post2: Post2, post3: Post3) => ReturnType<T>;
export type Post3Arg7<Post1, Post2, Post3, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, post1: Post1, post2: Post2, post3: Post3) => ReturnType<T>;
export type Post3Arg8<Post1, Post2, Post3, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, post1: Post1, post2: Post2, post3: Post3) => ReturnType<T>;
export type Post3Arg9<Post1, Post2, Post3, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, arg9: pick.Arg9<T>, post1: Post1, post2: Post2, post3: Post3) => ReturnType<T>;
export type Post3Arg10<Post1, Post2, Post3, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, arg9: pick.Arg9<T>, arg10: pick.Arg10<T>, post1: Post1, post2: Post2, post3: Post3) => ReturnType<T>;
export type Post4Arg1<Post1, Post2, Post3, Post4, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4) => ReturnType<T>;
export type Post4Arg2<Post1, Post2, Post3, Post4, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4) => ReturnType<T>;
export type Post4Arg3<Post1, Post2, Post3, Post4, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4) => ReturnType<T>;
export type Post4Arg4<Post1, Post2, Post3, Post4, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4) => ReturnType<T>;
export type Post4Arg5<Post1, Post2, Post3, Post4, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4) => ReturnType<T>;
export type Post4Arg6<Post1, Post2, Post3, Post4, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4) => ReturnType<T>;
export type Post4Arg7<Post1, Post2, Post3, Post4, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4) => ReturnType<T>;
export type Post4Arg8<Post1, Post2, Post3, Post4, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4) => ReturnType<T>;
export type Post4Arg9<Post1, Post2, Post3, Post4, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, arg9: pick.Arg9<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4) => ReturnType<T>;
export type Post4Arg10<Post1, Post2, Post3, Post4, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, arg9: pick.Arg9<T>, arg10: pick.Arg10<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4) => ReturnType<T>;
export type Post5Arg1<Post1, Post2, Post3, Post4, Post5, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5) => ReturnType<T>;
export type Post5Arg2<Post1, Post2, Post3, Post4, Post5, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5) => ReturnType<T>;
export type Post5Arg3<Post1, Post2, Post3, Post4, Post5, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5) => ReturnType<T>;
export type Post5Arg4<Post1, Post2, Post3, Post4, Post5, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5) => ReturnType<T>;
export type Post5Arg5<Post1, Post2, Post3, Post4, Post5, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5) => ReturnType<T>;
export type Post5Arg6<Post1, Post2, Post3, Post4, Post5, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5) => ReturnType<T>;
export type Post5Arg7<Post1, Post2, Post3, Post4, Post5, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5) => ReturnType<T>;
export type Post5Arg8<Post1, Post2, Post3, Post4, Post5, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5) => ReturnType<T>;
export type Post5Arg9<Post1, Post2, Post3, Post4, Post5, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, arg9: pick.Arg9<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5) => ReturnType<T>;
export type Post5Arg10<Post1, Post2, Post3, Post4, Post5, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, arg9: pick.Arg9<T>, arg10: pick.Arg10<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5) => ReturnType<T>;
export type Post6Arg1<Post1, Post2, Post3, Post4, Post5, Post6, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6) => ReturnType<T>;
export type Post6Arg2<Post1, Post2, Post3, Post4, Post5, Post6, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6) => ReturnType<T>;
export type Post6Arg3<Post1, Post2, Post3, Post4, Post5, Post6, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6) => ReturnType<T>;
export type Post6Arg4<Post1, Post2, Post3, Post4, Post5, Post6, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6) => ReturnType<T>;
export type Post6Arg5<Post1, Post2, Post3, Post4, Post5, Post6, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6) => ReturnType<T>;
export type Post6Arg6<Post1, Post2, Post3, Post4, Post5, Post6, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6) => ReturnType<T>;
export type Post6Arg7<Post1, Post2, Post3, Post4, Post5, Post6, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6) => ReturnType<T>;
export type Post6Arg8<Post1, Post2, Post3, Post4, Post5, Post6, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6) => ReturnType<T>;
export type Post6Arg9<Post1, Post2, Post3, Post4, Post5, Post6, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, arg9: pick.Arg9<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6) => ReturnType<T>;
export type Post6Arg10<Post1, Post2, Post3, Post4, Post5, Post6, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, arg9: pick.Arg9<T>, arg10: pick.Arg10<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6) => ReturnType<T>;
export type Post7Arg1<Post1, Post2, Post3, Post4, Post5, Post6, Post7, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7) => ReturnType<T>;
export type Post7Arg2<Post1, Post2, Post3, Post4, Post5, Post6, Post7, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7) => ReturnType<T>;
export type Post7Arg3<Post1, Post2, Post3, Post4, Post5, Post6, Post7, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7) => ReturnType<T>;
export type Post7Arg4<Post1, Post2, Post3, Post4, Post5, Post6, Post7, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7) => ReturnType<T>;
export type Post7Arg5<Post1, Post2, Post3, Post4, Post5, Post6, Post7, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7) => ReturnType<T>;
export type Post7Arg6<Post1, Post2, Post3, Post4, Post5, Post6, Post7, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7) => ReturnType<T>;
export type Post7Arg7<Post1, Post2, Post3, Post4, Post5, Post6, Post7, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7) => ReturnType<T>;
export type Post7Arg8<Post1, Post2, Post3, Post4, Post5, Post6, Post7, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7) => ReturnType<T>;
export type Post7Arg9<Post1, Post2, Post3, Post4, Post5, Post6, Post7, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, arg9: pick.Arg9<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7) => ReturnType<T>;
export type Post7Arg10<Post1, Post2, Post3, Post4, Post5, Post6, Post7, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, arg9: pick.Arg9<T>, arg10: pick.Arg10<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7) => ReturnType<T>;
export type Post8Arg1<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8) => ReturnType<T>;
export type Post8Arg2<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8) => ReturnType<T>;
export type Post8Arg3<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8) => ReturnType<T>;
export type Post8Arg4<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8) => ReturnType<T>;
export type Post8Arg5<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8) => ReturnType<T>;
export type Post8Arg6<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8) => ReturnType<T>;
export type Post8Arg7<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8) => ReturnType<T>;
export type Post8Arg8<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8) => ReturnType<T>;
export type Post8Arg9<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, arg9: pick.Arg9<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8) => ReturnType<T>;
export type Post8Arg10<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, arg9: pick.Arg9<T>, arg10: pick.Arg10<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8) => ReturnType<T>;
export type Post9Arg1<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, Post9, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8, post9: Post9) => ReturnType<T>;
export type Post9Arg2<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, Post9, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8, post9: Post9) => ReturnType<T>;
export type Post9Arg3<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, Post9, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8, post9: Post9) => ReturnType<T>;
export type Post9Arg4<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, Post9, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8, post9: Post9) => ReturnType<T>;
export type Post9Arg5<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, Post9, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8, post9: Post9) => ReturnType<T>;
export type Post9Arg6<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, Post9, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8, post9: Post9) => ReturnType<T>;
export type Post9Arg7<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, Post9, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8, post9: Post9) => ReturnType<T>;
export type Post9Arg8<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, Post9, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8, post9: Post9) => ReturnType<T>;
export type Post9Arg9<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, Post9, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, arg9: pick.Arg9<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8, post9: Post9) => ReturnType<T>;
export type Post9Arg10<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, Post9, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, arg9: pick.Arg9<T>, arg10: pick.Arg10<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8, post9: Post9) => ReturnType<T>;
export type Post10Arg1<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, Post9, Post10, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8, post9: Post9, post10: Post10) => ReturnType<T>;
export type Post10Arg2<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, Post9, Post10, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8, post9: Post9, post10: Post10) => ReturnType<T>;
export type Post10Arg3<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, Post9, Post10, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8, post9: Post9, post10: Post10) => ReturnType<T>;
export type Post10Arg4<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, Post9, Post10, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8, post9: Post9, post10: Post10) => ReturnType<T>;
export type Post10Arg5<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, Post9, Post10, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8, post9: Post9, post10: Post10) => ReturnType<T>;
export type Post10Arg6<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, Post9, Post10, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8, post9: Post9, post10: Post10) => ReturnType<T>;
export type Post10Arg7<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, Post9, Post10, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8, post9: Post9, post10: Post10) => ReturnType<T>;
export type Post10Arg8<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, Post9, Post10, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8, post9: Post9, post10: Post10) => ReturnType<T>;
export type Post10Arg9<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, Post9, Post10, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, arg9: pick.Arg9<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8, post9: Post9, post10: Post10) => ReturnType<T>;
export type Post10Arg10<Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, Post9, Post10, T extends (...args: any[]) => any> = (arg1: pick.Arg1<T>, arg2: pick.Arg2<T>, arg3: pick.Arg3<T>, arg4: pick.Arg4<T>, arg5: pick.Arg5<T>, arg6: pick.Arg6<T>, arg7: pick.Arg7<T>, arg8: pick.Arg8<T>, arg9: pick.Arg9<T>, arg10: pick.Arg10<T>, post1: Post1, post2: Post2, post3: Post3, post4: Post4, post5: Post5, post6: Post6, post7: Post7, post8: Post8, post9: Post9, post10: Post10) => ReturnType<T>;