變數宣告方式
- 指定型別
指定型別的宣告其實跟一般宣告方式差不多,只是在變數後面多了一個「:<要宣告的型別>」的指定,指定之後赴值一樣只能是同行別的值:
let name: string = 'moojing';
- 不指定型別
Typescript裡宣告變數,可以不指定型別,那就會是類似Js的方法,:
let name = 'moojing';
型別不指定的話,TS會自動偵測赴與的值是什麼類型,但是如果再次赴與不同型別的值,編譯就會報錯:
name = 2 ; //Error: Type '2' is not assignable to type 'string'.
TypeScript的幾種型別
TypeScript 裡面的型別基本上跟JS原生的型別相同,只是因為型別系統的加入又多出了幾種型別,:
- Any
- String
- Number
- Boolean
- Array
- Object
- Tuples
- Enums
- Void
- Never
Any
Any型別顧名思義就是任何型別都可以放入這個變數,如果使用這個型別,基本上就跟原本Js可以隨意assign的使用方式ㄧ樣了。實務上不太建議使用Any,因為這樣就跟使用JS沒有兩樣了:
let anyType:any = 1234;
anyType='1234' //It's Okay.
String / Number / Boolean
這三種基本型別的宣告都很直觀,直接宣告即可:
let myName:string = "Moojing"
let myName:number = 123
let myName:boolean = true
Array
Array的型別有兩種宣告方式:
let array:Array<number> = [2,3,4]
let array1:number[]=[4,5,6]
也可以宣告型別為any的Array:
let array1:any[]=[4,5,6]
Tuples 元組
Tuples在數學上的意思是有限的序列組合,其實就是包含很多不同型別元素的陣列:
let address: [string,number] = ["Superstreet",31]
不過使用Tuples就要注意,元素類型的順序也要跟宣告的相同,以上面的例子來說,第一個元素就不能是數字,第二個元素也不能是字串。
Enum 列舉
Enum就是把所有可能的狀態列出來:
enum Color{
Red,
Green,
Black
}
Enum的宣告方式很像一般物件,但是元素的值預設是向陣列的index,0,1,2…
enum Color{
Red,
Green,
Black
}
let myColor:Color = Color.Green;
console.log('myColor: ', myColor); //1
不過你也可以自己決定每個狀態對應的值:
enum Color{
Red =100,
Green=200,
Black=300
}
let myColor:Color = Color.Green;
console.log('myColor: ', myColor); //200