TypeScript Keyof
keyof
是 TypeScript 中的一个关键字,用于从对象类型中提取键的类型。
keyof
配合显式键
当对具有显式键的对象类型使用 keyof
时,它会创建一个包含这些键的联合类型。
示例
interface Person {
name: string;
age: number;
}
// `keyof Person` 在这里会创建一个 "name" 和 "age" 的联合类型,不允许其他字符串
function printPersonProperty(person: Person, property: keyof Person) {
console.log(`Printing person property ${property}: "${person[property]}"`);
}
let person = {
name: "Max",
age: 27
};
printPersonProperty(person, "name"); // 打印 person 属性 name: "Max"
自己动手试一试 »
keyof
配合索引签名
keyof
也可以与索引签名结合使用,以提取索引的类型。
type StringMap = { [key: string]: unknown };
// `keyof StringMap` 在这里解析为 `string`
function createStringPair(property: keyof StringMap, value: string): StringMap {
return { [property]: value };
}