如何在 TypeScript 函数的参数中声明新的泛型?

问题描述

本质上,我想使用 {{ product.name }} {{ product.avg_rating }} {{ product_rating_count }} 重新映射一个对象,但我不确定如何访问该值的类型。例如,我想要这样的东西:

<QuerySet [<Product: testp1>,<Product: testp2>,<Product: testp3>,<Product: testp4>]>

问题是我无法在参数内部声明新的泛型 (Record)。但是我需要一些方法来知道键的类型,以便确定值的类型。

解决方法

在这种情况下,您必须直接使用映射类型。

const testFunc = <S>(mappedObj: { [P in keyof S]: S[P] }) => { ... }