前言
小伙伴们大家好。今天继续来学习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 =