首页 > 其他分享 >TS 工具类型:Record

TS 工具类型:Record

时间:2023-04-11 12:13:40浏览次数:37  
标签:string 对象 number TS Record 类型 工具

类型定义

Record 的类型定义是下面这样:

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

Record 的作用:构造一个对象类型,其属性键为 K,其属性值为 T。

解释类型

其一

K extends string | number | symbol Record 需要传递一个类型 K,K 是 string、number、symbol 三个类型中的一个。

构造的对象类型属性值是类型 T,T 的类型可以是基础类型、对象、数组、函数等,实际上没有约束类型 T 到底长什么样,只要是合法的类型都可以。

其二

{ [P in K]: T; } Record 返回的结果,这个对象的键就是前面类型 K 推导出来的结果。假如传递的是 string,那么类型 K 就是 string,因此类型 P 就是 string。

举个例子:

keys 类型是一个联合类型,有 string、number。KeyName 约束对象的键类型属于类型 keys,即对象的键可以是 string、number 类型,其值是 string 类型。因此,obj 对象构造 "hello"888 是可以通过的。

实际使用

约束一个对象,对象键类型是 number,值也是一个对象:

image

标签:string,对象,number,TS,Record,类型,工具
From: https://www.cnblogs.com/Himmelbleu/p/17305802.html

相关文章

  • 低代码开发重要工具:jvs-rules规则引擎v2.1.7集成说明
    JVS规则引擎jvs-rules是将业务设置与业务功能解耦的重要工具,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据传入,数据加工,并根据业务规则做出业务判断。特别是在金融公司、保险行业、咨询等,复杂的业务逻辑规则是相关领域有非常广泛的应......
  • Oracle自定义splitstr
     CREATEORREPLACEFUNCTIONSPLITSTR(P_STRINGINVARCHAR2,P_DELIMITERINVARCHAR2)RETURNSTR_SPLITPIPELINEDASV_LENGTHNUMBER:=LENGTH(P_STRING);V_STARTNUMBER:=1;V_INDEXNUMBER;BEGINWHILE......
  • curl 作者开源 trurl,用于解析和操作 URL 的命令行工具
    curl作者开源trurl,用于解析和操作URL的命令行工具来源:OSCHINA编辑: 局2023-04-0608:40:00 6curl作者Daniel 宣布推出新的开源项目:trurl,这是一款用于解析和操作URL的命令行工具,主要是面向shell脚本作者提供。Daniel称项目名字中的'tr'代表trans......
  • vue中使用echarts的两种方法
    vue中使用echarts的两种方法Postedon 2021-08-1518:59  书中枫叶 阅读(33524) 评论(1)  编辑  收藏  举报在vue中使用echarts有两种方法一、第一种方法1、通过npm获取echartsnpminstallecharts--save2、在vue项目中引入echarts在 main.js 中添加下......
  • 72、神奇的叠加-图层工具
    一:图层缩略图  二:因为这里是背景层,有把锁的,所以这里是不能随便移动的 ......
  • ubuntu 编译出现错误fatal error: bits/libc-header-start.h: No such file or direct
    在ubuntugcc编译程序出现错误fatalerror:bits/libc-header-start.h:Nosuchfileordirectory表明缺少库环境。解决方法aptupdateapt-getinstallgcc-multilib成功编译......
  • OneForAll是一款功能强大的子域收集工具
    OneForAll是一款功能强大的子域收集工具 ......
  • Bootstrap
    为了提高开发效率,前端开发者都会使用一些现成的前端组件来进行开发,本节将给大家讲解由Twitter开源的前端框架BootStrap,他的内部集成了HTML、CSS、JavaScript很多功能和组件,让开发者可以快速开发网站。Bootstrap是一个用于构建响应式(根据用户设备不同做出响应)网站的前端框架,2011......
  • SpringBoot 集成 MybatisPlus 五——ActiveRecord
    1什么是ActiveRecordActiveRecord(活动记录),是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。在ActiveRecord模式中,对象中既有持久存储的数据,也有针对数据的操作,ActiveRecord模式把数据增删改查的逻辑作为对象的一......
  • python文本转语音库Pyttsx3
    python文本转语音库Pyttsx3:https://github.com/nateshmbhat/pyttsx3Installation:pipinstallpyttsx3Linuxinstallationrequirements:Ifyouareonalinuxsystemandifthevoiceoutputisnotworking,then:Installespeak,ffmpegandlibespeak1asshown......