keyof 是 TypeScript 中的一个特殊操作符,它可以用于获取某种类型的所有键(属性名)组成的联合类型。
type KeyType = keyof ObjectType;
interface Person {
name: string;
age: number;
email: string;
}
type PersonKey = keyof Person; // type PersonKey = "name" | "age" | "email"
function getValue<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key];
}
const person = { name: 'John', age: 30, email: 'john@example.com' };
console.log(getValue(person, 'name')); // 输出: 'John'
console.log(getValue(person, 'age')); // 输出: 30
console.log(getValue(person, 'address')); // 错误: 'address' 不是 'Person' 的属性
总之, keyof 是 TypeScript 中一个非常有用的操作符,它可以帮助开发者编写更加类型安全和可维护的代码。通过结合 keyof 和其他 TypeScript 特性,开发者可以创建出更加健壮和灵活的应用程序。