keyof 类型运算符
keyof 类型运算符
keyof
运算符采用对象类型并生成其键的字符串或数字字面联合。以下类型 P 与 "x" | "y" 类型相同:
type Point = { x: number; y: number };
type P = keyof Point;
如果该类型具有 string
或 number
索引签名,则 keyof
将返回这些类型:
type Arrayish = { [n: number]: unknown };
type A = keyof Arrayish;
type Mapish = { [k: string]: boolean };
type M = keyof Mapish;
请注意,在这个例子中,M
是 string | number
——这是因为 JavaScript 对象键总是被强制转换为字符串,所以 obj[0]
总是与 obj["0"]
相同。
keyof
类型在与映射类型结合使用时变得特别有用,我们稍后会详细了解。