9.索引签名类型,映射类型,索引查询类型

news2024/11/15 15:28:56

目录

1  索引签名类型

1.1  对象

1.2  数组

2  映射类型

2.1  映射联合类型

2.2  映射类型无法在接口中使用

2.3  映射对象类型

2.4  泛型工具类型都是基于映射类型实现的

3  索引查询类型

3.1  基本使用

3.2  索引查询多个相当于联合类型


1  索引签名类型

1.1  对象

我们现在想定义一个对象,规则是键名无所谓,所有的键值必须为number。这个时候我们可以用到索引签名类型

我们可以看到名称你随便取,但是值必须我数字。

由于在对象中键必须是字符串,所以规则中的string可以理解为定死的。由于something这里的变量名可以随便取,所以你也可以理解为定死的。也就是规则中冒号前面的东西都是定死的,你改后面的number就行了

1.2  数组

我们现在想定义一个数组,内容必须为字符串,我们通常会这样写

我们也可以利用所i你签名类型这样写

2  映射类型

2.1  映射联合类型

我现在要创建一个对象,需要包含x,y,z属性,且这三个属性都是number属性,这个时候我们可以这样写

也可以用映射类型来写

2.2  映射类型无法在接口中使用

2.3  映射对象类型

我们可以通过keyof只取他们的键

2.4  泛型工具类型都是基于映射类型实现的

比如Partial

再比如Readonly

上面是我自己写的,我们可以看一下源码

3  索引查询类型

3.1  基本使用

我现在有一个对象,对象里有a,b,c三个属性,属性值依次约束为 数字,字符串,布尔。我现在新建一个约束something1,让something1的类型与something中a的属性 类型相同

3.2  索引查询多个相当于联合类型

比如说我约束somehting1的类型为 数字或字符串

如果你用 keyof 就相当于把三个属性都遍历了,也就是something1的类型被约束为 数字或字符串或布尔

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/823346.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

07. Docker网络通信模式

目录 1、前言 2、基本原理 3、Docker网络配置 3.1、查看网络配置 3.2、4种网络模式 3.3、bridge模式 3.3.1、使用bridge网络 3.3.2、自定义bridge网络 3.4、host模式 3.5、container模式 3.6、none模式 4、小结 1、前言 前面我们介绍了Docker容器的相关内容&#…

刷题学算法

刷题学算法 数据结构 一、数组 1. 数组创建: // 方式1:先创建,再逐个存储元素 String[] cityArray1 new String[5]; cityArray1[0] "北京"; cityArray1[1] "上海"; cityArray1[2] "广州"; cityArray1[3…

Metric3D:Towards Zero-shot Metric 3D Prediction from A Single Image

参考代码:Metric3D 介绍 在如MiDas、LeReS这些文章中对于来源不同的深度数据集使用归一化深度作为学习目标,则在网络学习的过程中就天然失去了对真实深度和物体尺寸的度量能力。而这篇文章比较明确地指出了影响深度估计尺度变化大的因素就是焦距 f f f…

【Docker】Docker安装Kibana服务_Docker+Elasticsearch+Kibana

文章目录 1. 什么是Kibana2. Docker安装Kibana2.1. 前提2.2. 安装Kibana 点击跳转:Docker安装MySQL、Redis、RabbitMQ、Elasticsearch、Nacos等常见服务全套(质量有保证,内容详情) 1. 什么是Kibana Kibana 是一款适用于Elasticse…

Qt之进程通信-共享内存(含源码+注释)

文章目录 一、内存共享示例图读取文本读取图片 二、界面操作共享内存示例图文本读取示例图图片读取示例图弹窗示例图 二、个人理解与一些心得三、源码简易内存共享Demo创建者接收者 界面共享内存Demo创建者读取者 总结 一、内存共享示例图 读取文本 下图是读取文本的操作&…

TCP的三次握手以及四次断开

TCP的三次握手和四次断开,就是TCP通信建立连接以及断开的过程 目录 【1】TCP的三次握手过程 ---- TCP建立连接的过程 【2】TCP的四次挥手 ---- TCP会话的断开 注意: 【1】TCP的三次握手过程 ---- TCP建立连接的过程 三次握手的过程&#xff1a…

1.初识typescript

在很多地方的示例代码中使用的都是ts而不是js,为了使用那些示例,学习ts还是有必要的 JS有的TS都有,JS与TS的关系很像css与less ts在运行前需要先编译为js,浏览器不能直接运行ts 目录 1 编译TS的工具包 1.1 安装 1.2 基本…

【BASH】回顾与知识点梳理(二)

【BASH】回顾与知识点梳理 二 二. Shell 的变量功能2.1 什么是变量?2.2 变量的取用与设定: echo, 变量设定规则: set/unset2.3 环境变量的功能用 set 观察所有变量 (含环境变量与自定义变量)export: 自定义变量转成环境变量那如何将环境变量转成自定义变…

Openlayers实战:loadstart和loadend事件

Openlayers开发的项目中,loadstart和loadend事件能很好的显示地图的加载状态,给人明示地图的加载情况,做到不急躁。 效果图 源代码 /* * @Author: 大剑师兰特(xiaozhuanlan),还是大剑师兰特(CSDN) * @此源代码版权归大剑师兰特所有,可供学习或商业项目中借鉴,未经授…

Pycharm配置Qt Designer、PyUIC、qrcTOpy

Pycharm配置Qt Designer、PyUIC、qrcTOpy 1 Pycharm配置Qt Designer2 Pycharm配置PyUIC3 Pycharm配置qrcTOpy 1 Pycharm配置Qt Designer 打开pycharm的设置栏,点击外部工具,点击“”: 名称:Qt Designer 程序:.....\e…

从0到1框架搭建,Python+Pytest+Allure+Git+Jenkins接口自动化框架(超细整理)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 接口测试是对系统…

纯css实现九宫格图片

本篇文章所分享的内容主要涉及到结构伪类选择器&#xff0c;不熟悉的小伙伴可以了解一下&#xff0c;在常用的css选择器中我也有分享相关内容。 话不多说&#xff0c;接下来我们直接上代码&#xff1a; <!DOCTYPE html> <html lang"en"><head>&l…

Java8实战-总结10

Java8实战-总结10 Lambda表达式类型检查、类型推断以及限制类型检查同样的Lambda,不同的函数式接口类型推断使用局部变量对局部变量的限制 Lambda表达式 类型检查、类型推断以及限制 Lambda表达式可以为函数式接口生成一个实例。然而&#xff0c;Lambda表达式本身并不包含它在…

Android如何用系统签名打包应用

前言 应用使用系统签名可以在用户不需要手动授权的情况下自动获取权限。适合一些定制系统中集成apk的方案商。 步骤 需要在AndroidManifest.xml中添加共享系统进程属性&#xff1a; android:sharedUserId"android.uid.system"如下图所示&#xff1a; 找到系统定制…

给中间固定位置的盒子左右两边添加对称图标方法

给中间固定位置的盒子左右两边添加对称图标方法 【html代码】&#xff1a; <div class"news-content-style mb40px ">//左侧图标盒子<div class"news-arrow left"><a href""><img src"assets/images/index/left-icon…

Nacos配置中心设置Mongodb

目录 1.common模块导入nacos config依赖 2.common模块新建bootstrap.yaml 3.在自己的模块导入common模块依赖 4.打开nacos新建配置&#xff0c;发布 5.运行服务并测试 效果&#xff1a;在部署完成后&#xff0c;其他人可以自动连接到你本地mongoDB数据库&#xff0c;无需再…

自定义el-slider 滑块的样式

最近用到了element组件中的滑块&#xff0c;翻看了官网和网上一些案例&#xff0c;感觉和我要的样式都不太一样&#xff0c;下面记录一下我用到的两种自定义滑块。 效果图 第一种自定义画过的间断点样式 起始样式 滑动的样式 第二种自定义拖动滑块的样式 起始样式 滑动的样…

将程序打包成单一一个可执行文件

最近做了一个界面交互渲染的小项目&#xff0c;项目主要的功能是通过TCP接收数据然后在界面中渲染出对应的状态。由于用户的最大需求是炫酷&#xff0c;于是为了方便实现特殊的交互逻辑&#xff0c;我选择用freeglut自行实现了界面的交互和渲染&#xff0c;又用OpenCV做了部分图…

小区智能电动汽车充电桩如何收费盈利?

摘要&#xff1a;智能用电小区是国家电网为了研究智能电网智能用电的先进技术如何运用于居民区&#xff0c;提高人民的生活水平&#xff0c;提高电网智能化水平以及提升用电服务质量而进行的一项尝试。电动汽车作为智能用电小区建设的一个组成部分同样也逐渐被纳入发展规划&…

kafka部署

1.kafka安装部署 1.1 kafaka下载 https://archive.apache.org/dist/kafka/2.4.0/kafka_2.12-2.4.0.tgz Binary downloads是指预编译的软件包,可供直接下载和安装,无需手动编译。在计算机领域中,二进制下载通常指预构建的软件分发包,可以直接安装在系统上并使用 "2.…