TypeScript学习(六)

【TypeScript】TS交叉类型 交叉类型使用在上面的示例中,是Type1和Type2的交叉类型,它具有property1和property2两个属性。 阅读详情

1.TS的交叉类型(交集)

type A = number | string  此时A为never,因为number与string无交集

type LeftHand = {
    left:string
}
type RightHand = {
    right:string
}
type C = LeftHand | RightHand
type D = LeftHand & RightHand
const d : D = {
    left:'有左手',
    right:'有右手' 
    // 缺少left或right都会报错
}

注:LeftHand可以有right吗?可以有

type LeftHand = {
    left:string
}
const b = {
    left:'yes',
    right:'yes'
}
const a:LeftHand = b // 直接赋值不会报错

const a1:LeftHand = { // 声明加赋值会报错
    left:'yes',
    right:'yes' // error
}

Type的交集可以用来继承 

 interface也能交集

交叉类型的特殊场景:

当多个类型中有相同属性时,属性之间也会进行交集运算

当交叉类型中的属性有冲突时,未报错,但是当声明赋值的时候,冲突的属性报错,类型为never

type Person = {
    name:string,
    id:number
}
type User = {
    admin:string,
    id:string
}
type p = Person & User
const p1:p = {
    name:'123',
    admin:'123',
    id:1 // error, id为never
}

当时多个类型中的相同属性的值为指定值时

u1为never,报错

type Person = {
    name:string,
    id:'a'
}
type User = {
    admin:string,
    id:'b'
} & Person
const u1:User = { // error

}

当使用接口进行交集时产生属性冲突时会直接报错

interface Person  {
    name:string,
    id:'a'
}
interface User extends Person { // error 属性id类型不兼容
    admin:string,
    id:'b'
}

两个类型中的方法的参数产生冲突时进行交集运算,会将 & 变成 |

type A = {
    method: (a:number) => void
}
type B = {
    method: (a:string) => void
} & A
const b:B = {
    method(a) {
        a // number | string
    }
}

总结:交叉类型常用于有交集的类型A、B,如果A、B无交集,可能得到never,也可能只是属性为never

TypeScript 学习笔记(六):TypeScript 与前端框架的结合应用 在本篇学习笔记中,我们探讨了 TypeScript 与流行前端框架(Angular 和 React)的结合应用,涵盖了如何使用 TypeScript 编写 Angular 组件与服务,以及如何在 React 中使用 TypeScript 编写组件、Hooks 和 Context。本篇将重点探讨 TypeScript 与流行前端框架(如 Angular 和 React)的结合应用,帮助你在实际项目中更好地利用 TypeScript 的强大功能。在组件中使用该 Context。在组件中使用该服务。 阅读详情

相关推荐

高缺失率时空数据插补实战:从随机森林到扩散模型的性能对比

数据缺失是数据分析与机器学习建模中普遍面临的挑战,尤其在时空数据领域,传感器故障、传输中断等问题常导致数据不完整。数据插补技术旨在基于已知数据的模式和关联性,合理估算缺失值,为后续分析提供可靠基础。其核心原理在于利用数据的时空相关性(如时间周期性、空间邻近性)及与外部驱动因素(如交通、气象)的关联构建预测模型。这项技术的价值在于能将不完整的数据集转化为可用于高质量分析和预测的可用资产,广泛应用于环境监测、交通流量预测、金融风控等领域。本文聚焦于一个极具挑战性的场景——PM2.5监测数据缺失率高达82%,通过

weixin_30363285的博客 545

读懂 TS 中联合类型和交叉类型的含义

创建了一个 “重学TypeScript” 的微信群,想加群的小伙伴,加我微信 "semlinker",备注重学TS。本文是 ”重学TS系列“ 第 28 篇文章,感谢您的阅...

azl397985856的专栏 1万+

西门子Simotion运动控制

SIMOTION

rjimhcd的博客 3024

ts:交集类型 交叉类型

【代码】ts:交集类型。

qq_36413371的博客 321

Halcon 3D点云处理实战:从PLY文件读取到曲面匹配的完整流程(附避坑指南)

本文详细介绍了Halcon在3D点云处理中的完整流程,从PLY文件读取到曲面匹配,特别强调了3D算子的应用技巧和避坑指南。通过实战案例和参数优化建议,帮助开发者高效处理工业视觉检测中的复杂点云数据,提升匹配精度和性能。

weixin_42535720的博客 279

Gartner DSG数据安全治理 架构及解读

目录背景:架构图: 解释:英文解释:(自上而下)平衡业务与风险、威胁、合规之间的关系(5个维度之间的平衡)优先处理数据集制定安全策略实施安全工具策略配置同步从上到下,从需求调研开始实施数据安全治理。千万不要跨过数据摸底、治理优先级分析、制定治理整体策略,而直接从技术工具开始对数据安全进行治理。 先明确选择需要治理的对象,优先选择重要数据进行数据安全治理工作。可以通过数据梳理、分类分级等手段,完成数据资产盘点和筛选,在纷杂的数据中理清头绪。

锦慈的技术博客 7219

JavaScript 求两个数组的交集,并集,差集,去重

文章目录 1.差集 2.交集 3.并集 4.去重 a = [1, 2, 3],b = [2, 4, 5] 1.差集 (a-b 差集:属于a但不属于b的集合)a-b=[1,3],b-a=[4,5] filter + includes // 差集 let difference = a.concat(b).filter(v => !a.includes(v) ) Set + Array.fro...

Pandora_417的博客 1016

Windows10 使用Apple Studio Display显示器的设置

AppleStudioDisplay显示器购买花了近1.5wRMB,由于为windows台式机,显卡为NVIDAGTX-1660,而AppleStudioDisplay只有雷电接口,尝试了很多种转接方式,均以失败告终,最终使用贝尔金VR线成功,,附图如下这边也测试过NVIDARTX-2060Super、NVIDAGTX-1650显卡,都是能点亮的,NVIDA1650存在关机重启后黑屏,不稳定现象,2060也存在关机重启后不亮现象,后面发现1660s很稳定。...

爱意随风起,人生不可弃。 1万+

typescript基础之联合类型与交集类型

• 使用交集类型可以表示一个值或变量的类型需要同时满足多个条件的情况,例如混入(mixin),扩展(extend),约束(constraint)等。在 TypeScript 中,联合类型(union type)和交集类型(intersection type)是两种组合类型,它们可以用来表示一个值或变量的类型是多个类型中的一个或全部。• 联合类型使用 | 符号来连接多个类型,表示一个值或变量的类型可以是这些类型中的任意一个。

hhbbeijing的专栏 435

使用蒙特卡洛模拟方法在MATLAB中估算居里温度: 一个详细而通俗的指南

居里温度是磁性材料失去磁性的温度。但是,计算机模拟为我们提供了一个在理论和实验之间的桥梁,使我们能够在不进行实际测量的情况下估计这一重要参数。在下一部分,我们将详细介绍蒙特卡洛迭代的核心代码,以及如何使用它来模拟磁性材料中原子的行为。在估算居里温度的上下文中,我们将使用蒙特卡洛方法来模拟磁性材料中的原子或分子的行为。通过使用蒙特卡洛方法,我们可以在MATLAB中估算居里温度,从而为理论研究和实验设计提供有价值的信息。:我们使用的是一个有限的尺寸的网格模型,这可能导致一些大小效应,特别是在接近居里温度时。

qq_38334677的博客 979

ProcessingJoy —— 最简单的实时流体模拟【JAVA】

实现基于非常非常经典的 Paper ——Jos Stam 的Real-Time Fluid Dynamics for Games 代码和注释 float visc = 0.0f; float diff = 0.0f; int N = 250; int size = (N + 2) * (N + 2); float[] u = new float[size]; // 速度, 水平/竖直 float[] v = new float[size]; float[] u_prev = new fl...

ShaderJoy 的兴趣技术杂货铺 2816

TypeScript 基础学习(六)

TypeScript 基础学习(六)Ts中的装饰器装饰器的定义类装饰器属性装饰器装饰器工厂方法装饰器方法参数装饰器装饰器的执行顺序 今天接着学习ts中的类相关知识 Ts中的装饰器 装饰器的定义 /* 装饰器:装饰器是一种特殊类型的声明,他能够被附加到类声明,方法,属性或参数上,可以修改类的行为, 通俗的来说 装饰器就是一个方法,可以注入到类,方法,属性参数上来扩展类属性方法参数的功能。 常见的装饰器有:类装饰器,属性装饰器,方法装饰器,方法参数装饰器 装饰器的写法: 普通装饰器(无法传参) , 装饰

weixin_44288627的博客 231

31、工程中不确定性量化与优化的全面解析

本文全面解析了工程中不确定性量化与优化的关键方法。针对数据充足与不足两种情况,分别介绍了概率理论和非概率方法在不确定性建模中的应用;系统阐述了采样方法、FORM/SORM、泰勒级数近似等不确定性传播技术;深入比较了RBDO与RDO两种主流优化框架的原理、步骤及适用场景,并通过两杆桁架案例展示了具体实现过程。文章旨在为工程师提供一套完整的从不确定性分析到优化设计的方法论,提升工程系统的可靠性与稳健性。

php55的博客 121

TypeScript学习(六)模块

模块 1.定义 一些公共的功能,抽离成一个单独的文件,其中的数据是模块私有的,模块的内容,想要提供给外部使用,必须使用export暴露出去,外部想要使用模块,必须先使用import引入。 2.导出与导出 先建立目录结构 将test.ts作为模块导出,在hello.ts中引入 在test.ts中建立简单的功能,并导出 export function test():void{ console.log("引入了模块") } 1.当导出对象时唯一的的时候,也可以使用export default exp

qq_42584511的博客 513

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

TypeScript学习(六)枚举

使用枚举我们可以定义一些带名字的常量。使用枚举可以清晰地表达意图或创建一组有区别的用例。TypeScript支持数字和基于字符的枚举。(1)数字枚举以上就是一个基本的数字枚举,Up的初始值为0,后一位的枚举值在前一位的基础上+1。也可以指定初始值。像这样,Up,Right,Down,Left的值依次是1,2,3,4。(2)字符串枚举使用字符串作为枚举值时,必须为每一个枚举成员设置枚举值。因为字符串枚举没有自增长的能力,同时字符串枚举可以很好的序列化。(3)异构枚举。

volit的博客 704

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

系统学习 TypeScript(六)——认识接口

TypeScript 接口就像是一份具有名称的契约,契约的内容规定了某个数据结构里面的数据组成和类型。

编程三昧 731

TypeScript学习笔记(六) 接口

大家好,我是半虹,这篇文章来讲 TypeScript 中的接口

半虹小站 932

TypeScript 入门学习(六):TypeScript 装饰器

Typescript 装饰器 装饰器是一种特殊类型的声明,它可以被附加到类声明,方法,属性或参数上,可以修改类的行为。通俗的讲,装饰器就是一个方法,可以注入到类、方法、属性、参数上来扩展类、方法、属性、参数的功能。 常见装饰器:类装饰器、方法装饰器、属性装饰器、参数装饰器。 装饰器写法:普通装饰器(不可传参)、装饰器工厂(可传参)。 类装饰器 类装饰器在类声明之前声明,应用于构造函数,可以用来监视...

Star's Tech Blog 319

TypeScript 2.x 学习指南(六)

在本章中,我们学习了 TypeScript 编译器的内部组件。我们还学习了如何使用编译器 API 以及如何利用这些特性来开发我们的 TypeScript 开发工具。我希望这一章能够激发你对 TypeScript 编译器内部结构和由 TypeScript 驱动的软件开发工具开发的兴趣。它们的潜力和日益增长的受欢迎程度将把 JavaScript 生态系统提升到新的水平。

龙哥盟 4978

React 和 TypeScript3 学习手册(六)

在本章中,我们学会了如何使用 Jest 测试用 TypeScript 编写的纯函数。我们只需使用我们想要测试的参数执行函数,并使用 Jest 的expect函数与 Jest 的匹配器函数之一,比如toBe,来验证结果。我们看了如何与 Jest 的测试运行器交互,以及如何应用过滤器,以便只执行我们关注的测试。我们了解到测试 React 和 TypeScript 组件比测试纯函数更复杂,但 Jest 和 react-testing-library 为我们提供了很大的帮助。我们还学会了如何使用render。

龙哥盟 1110

Typescript 学习笔记六:接口

中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍、安装、编译 Typescript 学习笔记二:数据类型 Typescript 学习笔记三:函数 Typescript 学习笔记四:回忆Es5 中的类 Typescript 学习笔记五:类 Typescript 学习笔记六:接...

weixin_30686845的博客 222

typescript 学习 系列 (六)

// 1.abstract 抽象类:就是把共用的东西进行封装。 只能被继承,不能实例化 abstract class chouxiangA { name :string = '抽象类'; // 就是你知道下面类中都有这个方法,但是你不知道方法里具体写什么。这样的话定义abstract abstract getName() :string } // 类一 class chouxiangB extends chouxiangA{ ge

weixin_44425559的博客 271

TypeScript 学习笔记(六)- Omit

TypeScript 中的 Omit

kelly0721的博客 1210

TypeScript学习(六):函数的定义及特性

前面我们说完了对象和数组的定义,接下来就是一个重头戏---函数。函数可谓是在程序猿界无处不在,不管你学什么语言,都会接触到函数,我看有的文章将函数定义为一等公民,这就可以看得出函数对于我们来说地位是多么的高,是多么的重要,废话不多说,我们进入正题。 老样子,我们先说一下在JavaScript中,对于函数的定义和使用。什么是函数?函数就是被开发者用来执行某一项或多项功能任务的代码块。在JS中定义函...

Kreme的博客 796
上一篇: TypeScript学习(五)
下一篇: CSS不规则图形画法(clip-path)
Lxg-JJJJ
博客等级 码龄7年 960粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值