从TypeScript类型数组中排除类型

时间:2019-03-07 02:51:54

标签: typescript

假设我有这些类型

    /** Types of a function's arguments */
export type ArgumentTypes<F extends Function> = F extends (...args: infer A) => any ? A : never;

export type ExcludeQueryParams<T> = { [P in keyof T]: T[P] extends PagingParameters ? never : T[P] }

然后我有这段代码可以提取函数的参数类型

function test(query: PagingParameters, as: number, f: string) {
    return 1;
}

type argTypes = ArgumentTypes<typeof test>
type result = ExcludeQueryParams<argTypes>

以上,argTypes等于[PagingParameters, number, string]

我想做的是从数组中提取PagingParameters类型,因此result[number, string],但是使用ExcludeQueryParams的结果是[never, number, string]

在没有包含never类型的最终类型数组的情况下,如何正确地实现这一点?

0 个答案:

没有答案