假设我有这些类型
/** 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
类型的最终类型数组的情况下,如何正确地实现这一点?