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"); // 打印人员属性名称: "Max"
带有索引签名的 keyof
keyof
还可以与索引签名一起使用来提取索引类型。
type StringMap = { [key: string]: unknown }; // 这里的 'keyof StringMap' 解析为 'string' function createStringPair(property: keyof StringMap, value: string): StringMap { return { [property]: value }; }