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('錯誤'); })()