TS高级类型-Record

1,064 阅读1分钟

定义

Record 是一个内置的高级类型,作用是根据传入的key和value的类型生成索引类型

type Record<K extends string | number | symbol, T> = {  [P in K]: T;};

用法

定义普通对象类型

type obj = Record<string, any>;let a: obj = { x: 1, y: 2 };

配合联合类型

type keys= 'x'|'y'|'z' type obj=Record<keys,number> let a:obj={ x:1, y:2, z:3 }

可用于多个属性类型相同的情况,可以方便快捷的写出这个对象的类型定义

搭配接口

type keys = "x" | "y";interface values {  name: string;  age: number;}type obj = Record<keys, values>;let a: obj = { x: { name: "wang", age: 10 }, y: { name: "li", age: 15 } };