TypeScript 之 Record

发布时间 2023-08-02 10:09:49作者: 赋流

在 TS 中,类似数组、字符串、数组、接口这些常见的类型都非常常见,但是如果要定义一个对象的 key 和 value 类型该怎么做呢?这时候就需要用到 TS 的 Record 了。

来自TypeScript 之 Record - 简书 (jianshu.com)

【TypeScript】TypeScript之Record的用法 - 掘金 (juejin.cn)

比如我需要一个cats对象,这个对象里有三个不同的属性,且属性的值必须是数字和字符串 那么可以这样写:

interface CatInfo {
  age: number;
  breed: string;
}
 
type CatName = "mincat" | "licat" | "mordred";
 
const cats: Record<CatName, CatInfo> = {
  mincat: { age: 10, breed: "小猫er" },
  licat: { age: 5, breed: "李猫er" },
  mordred: { age: 16, breed: "无名猫er" },
};
 
cats.licat;
 
const cats: Record<CatName, CatInfo>