/* typeScript中的數據類型 typescript中為了使編寫的代碼更規范,更有利於維護,增加了類型校驗,在typescript中主要給我們提供了以下數據類型 布爾類型(boolean) 數字類型(number) 字符串類型(string) 數組類型(array) 元組類型(tuple) 枚舉類型(enum) 任意類型(any) null 和 undefined void類型 never類型 */ //布爾類型(boolean) /* es5的寫法 (正確寫法) ts中(錯誤寫法) var flag=true; flag=456; */ /* typescript中為了使編寫的代碼更規范,更有利於維護,增加了類型校驗 寫ts代碼必須指定類型 var flag:boolean=true; // flag=123; //錯誤 flag=false; //正確 console.log(flag); */ // 數字類型(number) /* var num:number=123; num=456; console.log(num); /正確/ num='str'; //錯誤 */ // 字符串類型(string) /* 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 arr2:Array<number>=[11,22,33]; console.log(arr2) //3、第三種 var arr3:any[]=['131214',22,true]; console.log(arr3); // 元組類型(tuple) 屬於數組的一種 // var arr:Array<number>=[11,22,33]; // console.log(arr) //元祖類型 // let arr:[number,string]=[123,'this is ts']; // console.log(arr); /* 枚舉類型(enum) 隨着計算機的不斷普及,程序不僅只用於數值計算,還更廣泛地用於處理非數值的數據。 例如:性別、月份、星期幾、顏色、單位名、學歷、職業等,都不是數值數據。 在其它程序設計語言中,一般用一個數值來代表某一狀態,這種處理方法不直觀,易讀性差。 如果能在程序中用自然語言中有相應含義的單詞來代表某一狀態,則程序就很容易閱讀和理解。 也就是說,事先考慮到某一變量可能取的值,盡量用自然語言中含義清楚的單詞來表示它的每一個值, 這種方法稱為枚舉方法,用這種方法定義的類型稱枚舉類型。 enum 枚舉名{ 標識符[=整型常數], 標識符[=整型常數], ... 標識符[=整型常數], } ; */ /* enum Flag {success=1,error=2}; let s:Flag=Flag.success; console.log(s); enum Flag {success=1,error=2}; let f:Flag=Flag.error; console.log(f); */ /* 000010 -1 -2 */ // 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 enum Err {'undefined'=-1,'null'=-2,'success'=1}; var e:Err=Err.success; console.log(e); // 任意類型(any) // var num:any=123; // num='str'; // num=true; // console.log(num) //任意類型的用處 var oBox:any=document.getElementById('box'); oBox.style.color='red'; // null 和 undefined 其他(never類型)數據類型的子類型 // var num:number; // console.log(num) //輸出:undefined 報錯 // var num:undefined; // console.log(num) //輸出:undefined //正確 // var num:number | undefined; // num=123; // console.log(num); //定義沒有賦值就是undefined // var num:number | undefined; // console.log(num); // var num:null; // num=null; //一個元素可能是 number類型 可能是null 可能是undefined var num:number | null | undefined; num=1234; console.log(num) // void類型 :typescript中的void表示沒有任何類型,一般用於定義方法的時候方法沒有返回值。 //es5的定義方法 // function run(){ // console.log('run') // } // run(); //表示方法沒有返回任何類型 /* //正確寫法 function run():void{ console.log('run') } run(); */ //錯誤寫法 /* function run():undefined{ console.log('run') } run(); */ //正確寫法 /* function run():number{ return 123; } 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('錯誤'); })()
