【TypeScript】从零开始玩转TypeScript - TypeScript中的高级类型

本文介绍了TypeScript中的高级类型,包括交叉类型(用于合并接口或类)和联合类型(取多个类型中的一个)。文章详细讲解了如何使用这两种类型,并探讨了类型保护机制,如自定义类型保护、typeof和instanceof。此外,还简述了类型别名的作用和使用场景。
摘要由CSDN通过智能技术生成

前言

小伙伴们大家好。今天继续来学习TypeScript。前面有一篇文章中我们已经学习了TypeScript中的基础数据类型,其实在TypeScript中还有一种数据类型叫做高级类型。下面我们就来分析一下,看看TypeScript中都有哪些高级类型,这些所谓的高级类型都长的啥样,具体如何使用。

高级类型

  • 交叉类型

所谓的交叉类型其实就是类型的合并:

  • 将多个类型合并成一个类型,合并后的类型将包含所有合并前的类型的全部成员和特性。
  • 交叉类型一般用于合并接口或类等这类引用数据类型,而不适用于我们前面学习过的基础类型
  • 交叉类型使用时是用 **&**符号将多个类型连接在一起

下面看一下代码示例,假设有一个包含姓名,年龄等属性的Person 类和一个包含说话,跑步等方法的IPerson接口,我们来利用这两个类型来实现一个交叉类型

class Person{
   
	name:string
	age:number
	sex:string
}

interface IPerson{
   
	say(world:string):string;
	run(km:number):number;
}

//per是一个包含了Person和IPerson的交叉类型
let per: Person & IPerson;
//在给per赋值时,per必须要包含Person类和IPerson接口中的所有成员,缺一或多一都不可以
per = {
   
	name:'Yannis', 
	age:28, 
	sex:'nv',
	say(world:string):string{
   
		return world
	},
	run(km:number):number{
   
		return km;
	}
}

// 交叉类型不适用与基础数据类型,比如定义一个string和number组合的交叉类型,定义时是被允许的,但是合并后的类型却是一个never类型,是无法进行赋值的,如下
let obj : string & number;
obj = 'hello'
obj = 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值