typescript 交叉类型

news2024/11/18 15:44:16

交叉类型简介

TypeScript中的交叉类型是指将多个类型合并为一个类型。这使得我们可以将现有的多种类型叠加到一起成为一种类型,它包含了所需的所有类型的特性。

写这篇文章先问大家一个问题,如何让一个对象既有a类型约束,又有b类型约束?
如果你看了我这篇文章typescrip接口 interface详解,以及ts实现多态,
那么你就会很轻易的回答我定义接口使用继承,
在这里插入图片描述

但使用接口有一个问题,就是当两个接口里面有同名但是不同类型约束时,就会报错,如下
在这里插入图片描述
这个时候就得用上交叉类型了
交叉类型(&): 功能类似于接口继承,(extends),用于组合多个类型为一个类型(常用于对象类型).
如下
在这里插入图片描述
tips:当使用交叉类型后,新的类型C就同时具备了A和B的所有属性或方法约束,相当于

type C1 = { a: string, b: number }

我们很简单就能证明这个例子
如下图,根据鸭子类型理论,C就是C1
在这里插入图片描述

交叉类型与接口继承的区别

交叉类型(&)和接口继承(extends)的对比

  • 相同点:都可以实现对象类型的组合
  • 不同点:两种方式实现类型组合时,对于同名属性之间,处理类型冲突的方式不同

接口处理同名属性类型冲突: 不允许
在这里插入图片描述

交叉类型处同名属性类型冲突
在这里插入图片描述
当我们鼠标移上去可以看到
在这里插入图片描述

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

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

相关文章

【vue2第十九章】手动修改ESlint错误 和 配置自动化修改ESlint错误

目标:认识代码规范 代码规范:一套写代码的约定规则。例如:“赋值符号的左右是否需要空格”,"一句结束是否是要加;”等 为什么要使用代码规范? 在团队开发时,提高代码的可读性。 在创建项目时,我们选择的就是一套完整的代码…

移动机器人运动规划 --- 基于图搜索的Dijkstra算法

移动机器人运动规划 --- 基于图搜索的Dijkstra算法 Dijkstra 算法Dijkstra 算法 伪代码流程Dijkstra 算法步骤示例Dijkstra算法的优劣分析 Dijkstra 算法 Dijkstra 算法与BFS算法的区别就是 : 从容器中弹出接下来要访问的节点的规则不同 BFS 弹出: 层级最浅的原则&#xff0c…

【教学类】公开课学号挂牌(15*15CM手工纸)

作品展示: 15*15CM手工纸 文本框12磅加粗。学号数字是段落写入,黑体270磅 背景需求 最近都在小班、中班、大班里做“Python学具测试”,由于都是陌生的孩子,上课时,我通常只能喊“白衣服的女孩”“花格子衣服的男孩”…

八大排序(三)--------简单选择排序

本专栏内容为:八大排序汇总 通过本专栏的深入学习,你可以了解并掌握八大排序以及相关的排序算法。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:八大排序汇总 🚚代码仓库:小小unicorn的代码仓库…

我写的最蠢的代码

链接 就问你怎么样吧。。。。。。

云计算(Docker)

Docker简介 Docker 是一个开源的应用容器引擎,基于 Go 语言,并遵从 Apache2.0 协议开源。它可以让开发者打包应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker 可用于开发…

Gateway学习和源码解析

文章目录 什么是网关?搭建实验项目demo-servicegateway-service尝试简单上手 路由(Route)断言(Predicate)和断言工厂(Predicate Factory)gateway自带的断言工厂After(请求必须在某个…

概率论与数理统计(第一章 概率论的基本概念)

文章目录 第一章 概率论的基本概念一、随机试验二、事件的概率 第一章 概率论的基本概念 一、随机试验 随机试验特点: ①可以在相同的条件下重复进行 ②每次试验的可能结果不止一个,并且能提前预测所有的可能结果 ③在未进行试验前不知道哪一个结果会出…

抖音SEO源码

抖音短视频seo矩阵系统源码是一种用于优化抖音视频内容的工具,可以帮助用户提高抖音视频的搜索排名和流量,从而增加视频曝光和转化率。该系统包括两部分,即数据收集和分析模块以及SEO策略和实施模块。 数据收集和分析模块主要负责从抖音平台…

MySQL进阶 —— 超详细操作演示!!!(中)

MySQL进阶 —— 超详细操作演示!!!(中) 三、SQL 优化3.1 插入数据3.2 主键优化3.3 order by 优化3.4 group by 优化3.5 limit 优化3.6 count 优化3.7 update 优化 四、视图/存储过程/触发器4.1 视图4.2 存储过程4.3 存…

爬虫实践-豆瓣读书Top250

爬虫学习与实践 一、爬虫介绍二、爬虫原理TCP3次握手,4次挥手过程 三、页面解析之数据提取四、正则表达式五、实践1. 抓取百度贴吧2. 拉钩招聘网 六、 进阶版 一、爬虫介绍 网络爬虫,其实叫作网络数据采集更容易理解。就是通过编程向网络服务器请求数据…

MasterAlign相机参数设置-增益调节

相机参数设置-曝光时间调节操作说明 相机参数的设置对于获取清晰、准确的图像至关重要。曝光时间是其中一个关键参数,它直接影响图像的亮度和清晰度。以下是关于曝光时间调节的详细操作步骤,以帮助您轻松进行设置。 步骤一:登录系统 首先&…

JumpServer存在未授权访问漏洞(CVE-2023-42442) 附POC

文章目录 JumpServer存在未授权访问漏洞(CVE-2023-42442)CVE-2023-42442 附POC1. JumpServer简介2.漏洞描述3.影响版本4.fofa查询语句5.漏洞复现6.POC&EXP7.整改意见8.往期回顾 JumpServer存在未授权访问漏洞(CVE-2023-42442)…

[补题记录] Atcoder Beginner Contest 300(E)

URL:https://atcoder.jp/contests/abc300 目录 E Problem/题意 Thought/思路 Code/代码 E Problem/题意 给一个 N,然后投色子,筛到每个数(即 1 - 6)的概率均等,把所筛到的数一个个相乘,直…

SSRF攻击(服务端请求伪造)

1.SSRF(服务端请求伪造)原理 概念:是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF是要目标网站的内部系统。(因为他是从内部系统访问的,所有可以通过它攻击外网无法访问的内部系统,也就是把目…

CTF学习路线!最详细没有之一!(建议收藏)

一、CTF入门 最近很多朋友在后台私信我,问应该怎么入门CTF。 个人认为入门CTF之前大家应该先了解到底什么是CTF,而你学CTF的目的又到底是什么; 其次便是最好具备相应的编程能力,若是完全不具备这些能力极有可能直接被劝退。 毕竟比赛的时…

百望云获评ITShare数智未来创新峰会“年度数字化优秀服务商”大奖

近日,百望云应邀出席“新能源-新制造暨汽车数智未来创新峰会”,凭借在数字化领域优秀的服务能力和丰富的落地成果,成功获评“年度数字化优秀服务商”,这也是市场对百望云在赋能企业数字化转型和产品创新领域的再度认可&#xff01…

微信小程序之项目基本结构、页面的基础及宿主环境

文章目录 前言一、基本组成结构基本组成小程序页面的组成部分JSON配置文件作用 二、页面基础pagesWXML和HTML的区别WXSS和CSS的区别小程序中js文件分类 三、小程序宿主环境总结 前言 微信小程序的项目基本结构、页面的基础及宿主环境 一、基本组成结构 基本组成 新建一个微信…

在“百模大战”重生,搜索引擎又行了?

文丨智能相对论 作者丨沈浪 “我想让人们知道,是我们(微软)让他们(谷歌)‘跳舞’。” 当加入ChatGPT功能的新一代Bing上线,微软CEO纳德拉就已经按耐不住向谷歌发起了挑战。他认为加入新一代人工智能对搜…

Qt核心:元对象系统、属性系统、对象树、信号槽

一、元对象系统 1、Qt 的元对象系统提供的功能有:对象间通信的信号和槽机制、运行时类型信息和动态属性系统等。 2、元对象系统是 Qt 对原有的 C进行的一些扩展,主要是为实现信号和槽机制而引入的, 信号和槽机制是 Qt 的核心特征。 3、要使…