当前位置: 首页 > Web前端 > HTML

[TS]联合类型--类型断言--类型推断

时间:2023-03-29 11:32:27 HTML

联合类型在实际开发中,我们接收到的变量可能不是固定的数据类型,而是多种动态数据类型。这时候,使用单一的固定数据类型显然是不可能接收到数据类型的。为了解决这个可能接收到多个不同数据类型的变量的问题,需要一个联合类型。联合类型意味着该值可以是多种类型之一。语法:let变量名:数据类型|数据类型2=值letstr:string|number='世界现代设计史'console.log(str);//世界现代设计史str=100console.log(str);//100//str=true//函数中使用联合类型报错//该函数可以传入数字类型和字符串类型,返回值为字符串类型constgetString=(str:number|string):string=>{//returnstr//打印100,返回类型必须是字符串returnstr.toString()//转换字符串,返回字符串类型}console.log(getString(100));typeassertiontypeassertion也是告诉编译器我知道我是什么类型,我在做什么。类型断言的语法:1.variablename(val)2.variablenameastype(valasnumber[])typeassertion是在编译时判断这个值是什么类型,ifIf是的,做你做的。letval:number[]=[100,200,300]//如果val存在,则为数组类型,输出val.lengthconsole.log((valasnumber[]).length);//Print3可以通过类型Assert做相应的操作,比如遍历数组:letval:number[]=[100,200,300]//如果val存在,则为数组,遍历数组(val).forEach(el=>{console.log(el);//print100,200,300})类型断言可以嵌套多次,比如double类型断言如果val存在则为any类型,如果val存在并且是any类型,是number[]类型,打印数组的长度console.log(((valasany)asnumber[]).length);//print3typeinferencetypeinference:当类型未明确指定,则推断类型。声明一个没有定义数据类型的变量,系统会根据变量的值自动推导出它是什么类型,并以此类型作为规范。//不指定类型时推断类型lettxt=100//推断数字类型//txt='东方无敌'//赋值字符串类型并报错console.log(txt);//Print100ifdeclared如果变量没有被赋值,那么这个变量是任意类型的,任意类型的变量可以是任意数据类型。lettxt2//声明的变量没有任何类型txt2=200txt2='WorldHistoryofModernDesign'console.log(txt2);案例源码:https://gitee.com/wang_fan_w/ts-seminar如果您觉得本文对您有帮助,欢迎点亮star

猜你喜欢