当前位置: 首页 > Web前端 > vue.js

TypeScript中的基本数据类型

时间:2023-03-31 15:48:47 vue.js

这一节我们学习TypeScript语言中的数据类型,包括:数值类型、字符串类型、布尔值、数组、元组等。TypeScript支持的数据类型和JavaScript几乎一样,而且为我们的方便提供有用的枚举类型。数字类型与在JavaScript中一样,TypeScript中的所有数字都是浮点数。这些浮点数属于数字类型。number类型除了支持十进制和十六进制字面量外,还支持ECMAScript2015引入的二进制和八进制字面量。例子:声明一个number类型的变量,可以是二进制、十进制、十六进制、八进制表示法:letn1:number=8;//小数letn2:number=0xf00d;//十六进制letn3:number=101010;//二进制letn4:number=0o633;//八进制console.log(n1,n2,n3,n4);编译为JavaScript代码:varn1=8;//十进制varn2=0xf00d;//十进制varn3=101010;//二进制变量n4=411;//八进制console.log(n1,n2,n3,n4);//861453101010411什么是十进制、二进制、八进制、十六进制:十进制:十进制数由十进制数0、1、2....9表示。二进制:二进制数据是用0和1两位数字表示的数,它的基数是2,进位规则是“二得一”,借位规则是“借一为二”。八进制:八进制是一种以8为基数的计数方式,使用0、1、2、3、4、5、6、7八个数,每个八进制为1。十六进制:十六进制是计算机中数据的一种表示方式。它不同于我们日常的十进制记数法。一般用0到9的数字和A到F(或a~f)的字母来表示,这些数字和字母的任意组合用来表示0~15之间的一个词。其中A~F代表10~15,这些称为十六进制数。布尔类型布尔类型boolean表示一个逻辑值,只有true和false这两个值。例子:比如声明两个布尔变量,输出:constb1:boolean=true;constb2:布尔值=false;控制台日志(b1,b2);将上面的代码编译成JavaScript代码:varb1=true;变量b2=假;控制台日志(b1,b2);output:truefalsestringtypestringtypestring用于表示文本数据类型,在JavaScript中可以使用单引号'或双引号"来表示字符串。示??例:声明一个string类型的变量:letstr:string="侠客岛";console.log(str);输出:侠客岛的数组类型,后跟方括号[],表示该类型元素的数组。示例:比如声明一个由数值类型组成的数组num,一个数组字符串类型组成的数组字符://添加[元素类型后],定义一个数值类型数组letnum:number[]=[1,2,3];console.log(num);//定义一个字符串类型arrayletcharacter:string[]=['a','b','c'];console.log(character);第二种方式是使用数组泛型,格式为Array例如:对于例如,声明一个数值类型的数组://使用数组泛型letarr:Array=[1,2,3];console.log(arr2);将上面的代码编译成JavaScript代码://使用数组泛型变量arr=[1,2,3];console.log(arr2);输出:[1,2,3]tupletype元组表示一个数组,其中元素的数量和类型已知。元组中的元素可以是不同的类型,但是需要注意的是定义类型的个数和类型顺序必须和元素值一一对应,一个都不行。示例:声明一个元组,元组中第一个元素是字符串类型,第二个元素是数字类型://类型和值必须一一对应lettuple:[string,number]=['夏晓飞',18];控制台日志(元组);控制台日志(元组[0]);编译成JavaScript代码://类型和值必须对应vartuple=['小飞侠',18];控制台日志(元组);控制台日志(元组[0]);输出:['PeterPan',18]PeterPan枚举类型枚举类型enum用于定义值的集合。示例:声明一个枚举类型的变量Fruits,它具有三个不同的值:enumFruits{watermelon,Apple,Litchi};控制台日志(水果);将代码编译成JavaScript代码:varFruits;(function(Fruits){Fruits[Fruits["watermelon"]=0]="watermelon";Fruits[Fruits["Apple"]=1]="Apple";Fruits[Fruits["Litchi"]=2]="Litchi";})(Fruits||(Fruits={}));;控制台日志(水果);执行代码后的输出为:{'0':'watermelon','1':'Apple','2':'Litchi',watermelon:0,Apple:1,Litchi:2}anyAnytypeAnyvalue是TypeScript在编程期间用于具有不明确类型的变量的数据类型。声明为any的变量可以分配任何类型的值。例子:比如声明一个any类型的未知变量:letunknown:any;unknown=7;//数字类型console.log(unknown);unknown='xkd';//字符串类型console.log(unknown);unknown=false;//布尔类型console.log(unknown);将上面的代码编译成JavaScript代码:varunknown;unknown=7;//数值类型console.log(unknown);未知='xkd';//字符串类型console.log(unknown);unknown=false;//布尔类型console.log(unknown);output:7xkdfalsevoidtype在Java等语言中,如果一个方法没有返回值,则该方法默认的返回值类型为void类型。JavaScript中没有这种类型,这个TypeScript新类型。void可以用来标识方法返回值的类型,表示该方法没有返回值。示例:如果定义函数时没有返回值,建议在函数名后跟一个void。比如下面这个函数show(),我们没有给它指定返回值,所以把这个函数的返回值指定为void类型:functionshow():void{console.log("你好侠客岛!");}//调用函数show();编译成JavaScript代码:functionshow(){console.log("Hello,Xiakedao!");}//调用函数show();输出:你好,侠客岛!Null和Undefined类型null和undefined类型与其对应的JavaScript非常相似,因为它们分别是Null和Undefined类型的文字和唯一值。示例:varn=null;变量u=未定义;控制台日志(n,你);//nullundefinedNever类型Never类型表示值永远不存在的类型。示例:在声明变量时,我们可以将变量声明为never类型:leta:never;never类型是任何类型的子类型,可以分配给任何类型。例子:leta:never;letb:number;letc:string;//nevertype可以赋值为nevertypea=(()=>{thrownewError('xkd');})();//never类型可以赋值给数字类型b=(()=>{thrownewError('xkd');})();//never类型可以赋值给字符串类型c=(()=>{throw新错误('xkd');})();但是没有类型是never的子类型,或者可以分配给never,甚至不是any。例子:比如给never类型赋一个数值:leta:never;a=100;//输出:类型'100'不可分配给类型'never'链接:https://www.9xkd.com/