TypeScript - 类型工具 Record
类型定义
type Record<K extends string | number | symbol, T> = { [P in K]: T; }
Record 的作用:构造一个对象类型,其属性的类型是 K,属性值的类型是 T。
解释类型
其一
K extends string | number | symbol
表示对象的键(key)有可能是联合类型中的其中之一,即 K 泛型是 string
、number
、symbol
这三种类型中的其中一个。
T 泛型表示对象的属性值(value)的类型。T 泛型可以是基础类型、对象、数组、函数等,这里没有指定 T 泛型的具体类型。
其二
{ [P in K]: T; }
中的 P 泛型是对象的键(key),通过 in
遍历了 P 泛型的所有可能,如下图所示: