TypeScript具有实用程序类型Parameters
,它提供了函数的参数类型,如下所示:
function simple(a: number, b: string) {}
type SimpleParameters = Parameters<typeof simple>;
// is: [a: number, b: string]
如何对通用函数执行相同操作?这不起作用:
function generic<T>(a: T, b: string) {}
type GenericParameters = Parameters<typeof generic>;
// expected: <T>[a: T, b: string]
// actual: [a: unknown, b: string]
而且它甚至不会编译:
type GenericParameters<T> = Parameters<typeof generic<T>>;