首页 > 其他分享 >TypeScript 之 Record

TypeScript 之 Record

时间:2023-08-02 10:13:49浏览次数:39  
标签:TypeScript age breed Record cats licat

在 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>


 

标签:TypeScript,age,breed,Record,cats,licat
From: https://www.cnblogs.com/kekit-rei/p/17599833.html

相关文章

  • [React] forwardRef typescript
    importReact,{forwardRef}from"react";//DeclareatypethatworkswithgenericcomponentstypeFixedForwardRef=<T,P={}>(render:(props:P,ref:React.Ref<T>)=>React.ReactElement)=>(props:P&React.RefAttri......
  • Vue3中使用TypeScript封装axios遇到的问题(AxiosRequestConfig)
    如果您有更好的解决方法,欢迎评论区评论。版本"dependencies":{"axios":"^1.0.0","vant":"^4.6.3","vue":"^3.3.4","vue-router":"^4.2.4","vuex":&quo......
  • JavaScript、ECMA、CommonJs、NodeJS、TypeScript的关系
    返回JavaScript发布时间:1995发布公司:Netscape(网景)它是一种高级的解释型编程语言,简称JS它最初的设计目标是改善网页的用户体验。......
  • TypeScript 泛型接口的一个具体使用例子
    有下面这段代码:以上代码是一个TypeScript定义的接口(interface),用于表示一个通用的实体状态(EntityState)。让我们逐行解释这段代码的含义,并了解其中使用了哪些TypeScript的语法特性:exportinterfaceEntityState<T>{这行代码定义了一个导出的接口EntityState<T>,其中<T>......
  • 关于 TypeScript 中的联合类型
    在TypeScript中,|符号被用于定义联合类型(UnionTypes)。联合类型是一种高级的类型定义方式,它允许你定义一个类型为多种类型中的一种。这对于处理可能有多种类型的变量非常有用。例如,假设我们有一个函数,它接受一个参数,这个参数可能是一个数字,也可能是一个字符串。在JavaScript......
  • TypeScript 对象解构操作符在 Spartacus 实际项目开发中的应用
    下面这段代码来自Spartacus项目的navigation-entry-item.reducer.ts实现。import{NodeItem}from'../../model/node-item.model';import{CmsActions}from'../actions/index';exportconstinitialState:NodeItem|undefined=undefined;exportfu......
  • 主键和分页和ActiveRecord和SimpleQuery
    1. 主键策略  761.1  主键生成策略介绍   76首先大家先要知道什么是主键,主键的作用就是唯一标识,我们可以通过这个唯一标识来定位到这条数据。当然对于表数据中的主键,我们可以自己设计生成规则,生成主键。但是在更多的场景中,没有特殊要求的话,我们每次自己手动生成的比较麻烦,......
  • Unity Recorder
    UnityRecorder录制高清视频由于经常开发过程需要经常录制高清Unity视频点击StartRecording可以直接录制运行的Game窗口默认比例就是1920*1080,不需要最大化运行可以无损录制,体积过大一、使用Recorder视频录制参数详解二、录制无损视频后压缩体积无损录制设置......
  • typescript
    原始数据类型包括:布尔值、数值、字符串以及ES6中的新类型Symbol和ES10中的新类型BigInt数组泛型letlist:Array<number>=[1,2,3]; 任意类型letlist:any[]=['itbaizhan',10,{website:'https://xxx.com'}]; 元组letinfo:[string,number]=['g......
  • TypeScript小知识:遍历enum (暂时记录)
    enumBlockPrefab{  BLOCK2=0,  BLOCK4,  BLOCK8,  BLOCK16,  BLOCK32,  BLOCK64,  BLOCK128,  BLOCK256,  BLOCK512,  BLOCK1024,  BLOCK2048}letnum=BlockPrefab.BLOCK128;letsmth=BlockPrefab[num];let......