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

系统学习TypeScript(三)——基本类型

时间:2023-03-28 14:51:42 HTML

前言TypeScript中包含的基本类型归纳如下:布尔值、数值字符串数组、元组、枚举、任意值、空值、Null和undefinedNeverObject今天,我们来了解一下仔细看看每种类型的含义和表达方式。Boolean→boolean它只有两个值——true和false。letisNew:boolean=true;Number→numberTypeScript中的整数和浮点数类型都是数字,这一点和JavaScript是一样的,例如:十进制、二进制、八进制和十六进制类型都是数字。letdecAge:number=22;lethexAge:number=0x0016;letbinaryAge:number=0b10110;letoctalAge:number=0o026;//上面的变量使用(number).toString(10)转为十进制和所有可以作为22(number).toString(base)将数字转换为任意基类型。String→string和JavaScript一样,字符串的值用单引号或双引号括起来:letmyName:string="ProgrammingSamadhi";letmyHomepage:string=`example.com/${myName}`;TypeScript中定义的数组有两种类型的数组。第一个是元素类型后面跟[],表示由这种类型的元素组成的数组:letarr:number[]=[1,2,3,4];//如果在数组中加入其他元素,会报错第二种是使用数组泛型定义数组:letarr1:any[]=[1,"2",3,"4"];//这个数组可以是任意类型的元素元组如果Tuple元组类型允许表示具有已知元素数量和类型的数组,这些元素不必是同一类型。letarr2:[number,string,number]=[1,"2",3];//如果写成[1,2,3],会报错。元素严格规定了数组的长度和每个位置的元素类型,赋值时需要严格对应,否则会报错。枚举枚举类型是对JavaScript标准数据类型的补充。与C#等其他语言一样,枚举类型可用于为一组值赋予友好的名称。枚举颜色{Red,Green,Blue}让c:Color=Color.Green;默认情况下,元素从0开始编号。您也可以手动指定成员的值。例如,我们将上面的例子改为从1开始编号:enumColor{Red=1,Green,Blue}letc:Color=Color.Green;或者,全部使用手动赋值:enumColor{Red=1,Green=2,Blue=4}letc:Color=Color.Green;枚举类型提供的便利之一是您可以从枚举的值中获取它的名称。比如我们知道这个值为2,但是我们不确定它映射到Color中的哪个名字,我们可以查找对应的名字:enumColor{Red=1,Green,Blue}letcolorName:string=Color[2];控制台。日志(颜色名称);//显示'Green',因为上面代码中它的值为2Anyvalueany代表任何类型的值。如果不想让类型检查器检查这些值,就让它们直接通过编译阶段的检查,那么你可以使用任何类型来标记这些变量:leta:any=12;一个=“12”;letlist:any[]=[1,true,"free"];列表[1]=100;emptyValuevoid当一个数据没有任何类型时,通常用void来标记,多用于函数返回值。functionsayName():void{console.log(`我的名字是ProgrammingSamadhi。`);}letaNull:void=null;letaNull1:void=undefined;void类型只能指定为null或undefined。null和undefinedTypeScript中也有null和undefined类型,它们只能分别对应null和undefined值。lettheNull:null=null;让theUndefined:undefined=undefined;这两种基本没用。null和undefined是否可以赋值给number类型的变量取决于编译配置文件中的“--strictNullChecks”选项是否关闭,一般建议开启该选项。Nevernever类型代表的是从不存在的值类型。例如,never类型是函数表达式或箭头函数表达式的返回值类型,它总是抛出异常或根本不返回值;变量在被声明时也可以是never类型never当被保护时。never类型是任何类型的子类型,并且可以分配给任何类型;但是,没有类型是never类型的子类型或可分配给never类型(除了never本身)。甚至any也不能分配给never。下面是一些返回never类型的函数://返回never的函数必须有一个不可达的结束函数error(message:string):never{thrownewError(message);}//推断的返回值类型是neverfunctionfail(){returnerror("Somethingfailed");}//返回never的函数必须有一个不可达的终点functioninfiniteLoop():never{while(true){}}objectobject类型包括除少数基本类型之外的所有类型。letobj:object=[1,2,3];letobj1:object={name:"ProgrammingSamadhi"};letfunc:object=()=>{console.log("ProgrammingSamadhi");}扩展1,TypeScript会根据你给变量的初始值来判断默认类型。letaNum=12;aNum="number";//类型'string'不可分配给类型'number'。2.函数方法的参数和返回值可以使用类型限制来保证参数传递和返回值的正确性。functionsum(a:number,b:number):number{returna+b;}sum(1,"3");//'string'类型的参数不能分配给'number'类型的参数。总结以上就是TypeScript中基本数据类型的介绍。总结一下:在变量(函数括号)后面加一个冒号,后面跟期望的类型,限制类型的一致性;如果没有明确的类型限制,TypeScript会根据初始值自动添加类型。~~本文到此结束,感谢阅读!~学习有趣的知识,认识有趣的朋友,塑造有趣的灵魂!大家好,我是〖编程三昧〗的作者王隐,我的公众号是《编程三昧》,欢迎关注,希望大家多多指教!