UNPKG

tsargs

Version:

typescript function arguments utils

132 lines (124 loc) 31.2 kB
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>;