从泛型键中获取泛型属性的确切类型,可以通过类型推断和反射来实现。
首先,我们需要定义一个泛型函数,该函数接受一个泛型键和一个对象作为参数,并返回泛型属性的确切类型。代码示例如下:
function getPropertyType<T, K extends keyof T>(key: K, obj: T): T[K] {
return obj[key];
}
上述代码中,T
表示对象的类型,K
表示泛型键的类型,keyof T
表示 T
对象的所有键的联合类型。函数的返回类型 T[K]
表示泛型属性的确切类型。
接下来,我们可以使用该函数来获取泛型属性的确切类型。例如,我们有一个对象 person
,它有一个泛型属性 name
,我们可以通过调用 getPropertyType
函数来获取 name
属性的确切类型。代码示例如下:
interface Person {
name: string;
age: number;
}
const person: Person = {
name: "John",
age: 30,
};
const nameType = getPropertyType("name", person);
console.log(nameType); // 输出为 "string"
在上述示例中,我们调用 getPropertyType
函数,并传入泛型键 "name"
和对象 person
。函数返回的 nameType
类型被推断为 "string"
,即 name
属性的确切类型。
推荐的腾讯云相关产品:无
参考链接:
领取专属 10元无门槛券
手把手带您无忧上云