从函数参数中获取类型形式的对象属性值,可以使用 TypeScript 提供的反射机制和类型推断。
首先,我们可以定义一个泛型函数 getProperty
,该函数接受两个参数:一个对象 obj
和一个属性名 key
。通过使用 TypeScript 的 keyof
关键字,我们可以获取 obj
的所有属性名的联合类型,并使用泛型约束来确保 key
的类型是 obj
的属性名之一。然后,我们可以使用索引访问操作符 obj[key]
来获取属性值。
以下是示例代码:
function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key];
}
// 示例用法
const person = {
name: "John",
age: 25,
};
const nameValue = getProperty(person, "name"); // 类型推断为 string
console.log(nameValue); // 输出 "John"
const ageValue = getProperty(person, "age"); // 类型推断为 number
console.log(ageValue); // 输出 25
优势:
应用场景:
推荐的腾讯云相关产品和产品介绍链接地址:
请注意,本回答仅提供了解决问题的一个方案,具体实现方式可能因实际需求和环境而异。
领取专属 10元无门槛券
手把手带您无忧上云