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 };
}