类型体操前需要熟悉的知识点

keyof 类型操作符 keyof 类型操作符用于获取对象的所有键,返回一个由对象的键组成的联合类型。下方类型 P 和 type P = "x" | "y" 是相同类型。
type Point = { x: number, y: number };
type P = keyof Point; // 'x' | 'y'如果类型有一个 string 或 number 索引签名,keyof 会返回这些类型:
type Arrayish = { [n: number]: unknown };
type A = keyof Arrayish; // number
type Mapish = { [k: string]: unknown };
type M = keyof Mapish; // string | number在这个例子中,M 是 string 和 number 的联合类型,因为 JavaScript 对象的键总是字符串,所以 obj[0] 总是和 obj["0""] 是一样的。
keyof 类型和映射类型一起使用时会非常有用。