typescript中为了使编写的代码更规范,更有利于维护,增长了类型校验,在typescript中主要给咱们提供了如下数据类型typescript
布尔类型(boolean)
数字类型(number)
字符串类型(string)
数组类型(array)
元组类型(tuple)
枚举类型(enum)
任意类型(any)
null 和 undefined
void类型
never类型数组
var flag=true; flag=456; //es5的写法 (正确写法) ts中(错误写法) var flag:boolean=true; // flag=123; //错误 flag=false; //正确 console.log(flag);
var num:number=123; num=456; console.log(num); /正确/ num='str'; //错误
var str:string='this is ts'; str='haha'; //正确 str=true; //错误
// 数组类型(array) ts中定义数组有两种方式 // var arr=['1','2']; //es5定义数组 // 1.第一种定义数组的方式 var arr:number[]=[11,22,33]; console.log(arr); //2.第二种定义数组的方式 var arr:Array<number>=[11,22,33]; console.log(arr)
自定义每一个数组类型this
// 元组类型(tuple) 属于数组的一种 let arr:[number,string]=[123,'this is ts']; console.log(arr);
enum 枚举名{ 标识符[=整型常数], 标识符[=整型常数], ... 标识符[=整型常数], } ;
示例:es5
enum Flag {success=1,error=2}; let s:Flag=Flag.success; console.log(s); enum Color {blue,red,'orange'}; var c:Color=Color.red; console.log(c); //1 若是标识符没有赋值 它的值就是下标 enum Color {blue,red=3,'orange'}; var c:Color=Color.red; console.log(c); //3 var c:Color=Color.orange; console.log(c); //4
// var num:any=123; // num='str'; // num=true; // console.log(num) //任意类型的用处 var oBox:any=document.getElementById('box'); oBox.style.color='red';
null 和 undefined 其余(never类型)数据类型的子类型code
var num:number; console.log(num) //输出:undefined 报错 //定义没有赋值就是undefined var num1:number | undefined; console.log(num1); //一个元素多是 number类型 多是null 多是undefined var num2:number | null | undefined; num2=1234; console.log(num2)l
typescript中的void表示没有任何类型,通常用于定义方法的时候方法没有返回值。ip
function run():void{ console.log('run') } run(); //错误写法 /* function run():undefined{ console.log('run') } run(); */
never类型:是其余类型 (包括 null 和 undefined)的子类型,表明从不会出现的值。
这意味着声明never的变量只能被never类型所赋值。字符串
/* var a:undefined; a=undefined; var b:null; b=null; */ var a:never; // a=123; //错误的写法 a=(()=>{ throw new Error('错误'); })()