/*
1、vscode配置自動編譯
1.第一步 tsc --inti 生成tsconfig.json 改 "outDir": "./js",
2、第二步 任務 - 運行任務 監視tsconfig.json
2、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 arr:Array<number>=[11,22,33];
console.log(arr)
*/
// 元組類型(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)
// null 和 undefined
// void類型 :typescript中的void表示沒有任何類型,一般用於定義方法的時候方法沒有返回值。
// never類型:是其他類型 (包括 null 和 undefined)的子類型,代表從不會出現的值。這意味着聲明never的變量只能被never類型所賦值。