Skip to content
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待

Keyof 类型运算符

keyof 类型运算符

keyof 运算符接受一个对象类型,并生成其键的字符串或数字字面量联合类型。 以下类型 P 与类型 type P = "x" | "y" 相同:

ts
type 
Point
= {
x
: number;
y
: number };
type
P
= keyof
Point
;
Try

如果该类型具有 stringnumber 索引签名,则 keyof 将返回这些类型:

ts
type 
Arrayish
= { [
n
: number]: unknown };
type
A
= keyof
Arrayish
;
type
Mapish
= { [
k
: string]: boolean };
type
M
= keyof
Mapish
;
Try

注意,在此示例中,Mstring | number —— 这是因为 JavaScript 对象的键总是被强制转换为字符串,因此 obj[0] 总是与 obj["0"] 相同。

keyof 类型在与映射类型结合使用时尤其有用,我们稍后将学习更多相关内容。