联结类型

在理论开发中,咱们接管的变量可能不是一个固定的数据类型,而是动静的多个数据类型,此时用单个固定的数据类型去接管很显著是不行的,为了解决这种可能会接管多个不同数据类型的变量就须要用到联结类型。联结类型示意取值能够为多种类型中的一种。
语法:let 变量名 : 数据类型 | 数据类型2 = 值

let str : string | number = '世界古代设计史' console.log(str);  // 世界古代设计史 str = 100 console.log(str);  // 100//  str = true   // 报错

在函数中应用联结类型

// 该函数能够传入数字类型和字符串类型,返回值为字符串类型const getString = (str:number|string):string =>{    // return str  // 打印100 报错 返回的类型必须是字符串    return str.toString()  // 转字符串,返回字符串类型}console.log(getString(100));


类型断言

类型断言也就是通知编译器,我晓得本人是什么类型,也晓得本人在干什么。
类型断言的语法:
1、<类型>变量名 (<number[]>val)
2、变量名 as 类型 (val as number[])

类型断言也就是在编译的时候判定这个值是什么类型的,如果是的话就做什么操作。

let val : number[] = [100,200,300]  // 如果val存在,那么它是一个数组类型的,输入val.length  console.log((val as number[]).length);   // 打印 3

能够通过类型断言来做对应的操作,比方遍历一个数组:

let val : number[] = [100,200,300]  // 如果val存在,那么它是一个数组,遍历数组(<number[]>val).forEach(el=>{    console.log(el);   // 打印 100,200,300})

类型断言能够多重嵌套,比方双重类型断言
如果 val 存在,那么它是any类型的,如果val存在并且是any类型的,它则是number[]类型的,打印数组的长度

console.log(((val as any) as number[]).length);// 打印 3


类型推断

类型推断: 在没有明确指定类型的时候,揣测出一个类型。
申明一个变量,这个变量没有定义数据类型,零碎会依据变量的值主动推断它是什么类型,并且以此类型为标准。

// 在没有明确指定类型的时候揣测出一个类型let txt = 100    // 推断 number类型// txt = '东方不败' // 赋值 string类型 报错console.log(txt);  // 打印 100

如果申明的变量没有赋值,那么这个变量为any类型,any类型的变量能够是任何数据类型。

let txt2   // 变量申明了没赋值 any类型txt2 = 200txt2 = '世界古代设计史'console.log(txt2);


案例源码:https://gitee.com/wang_fan_w/ts-seminar

如果感觉这篇文章对你有帮忙,欢送点亮star