要创建具有从参数类型推断出的返回类型的泛型 TypeScript 类型函数,可以使用 TypeScript 中的泛型和条件类型来实现。
下面是一个示例代码:
function createGenericFunction<T extends (...args: any[]) => any>(func: T): (...args: Parameters<T>) => ReturnType<T> {
return (...args) => func(...args);
}
这个函数接受一个泛型参数 T
,该参数是一个函数类型。通过使用 Parameters<T>
和 ReturnType<T>
,我们可以从参数类型推断出返回类型。
使用示例:
function add(a: number, b: number): number {
return a + b;
}
const genericAdd = createGenericFunction(add);
const result = genericAdd(1, 2); // result 的类型被推断为 number
在这个示例中,我们定义了一个 add
函数,它接受两个 number
类型的参数并返回一个 number
类型的结果。然后,我们使用 createGenericFunction
函数创建了一个具有从参数类型推断出的返回类型的泛型函数 genericAdd
。最后,我们调用 genericAdd
函数,并将结果赋值给 result
变量,TypeScript 可以正确地推断出 result
的类型为 number
。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云