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 属性名称: "Max"
亲自试一试 »

keyof 带索引签名

keyof 也可以与索引签名一起使用来提取索引类型。

type StringMap = { [key: string]: unknown };
// `keyof StringMap` 在这里解析为 `string`
function createStringPair(property: keyof StringMap, value: string): StringMap {
  return { [property]: value };
}