TypeScript基礎類型

TypeScript中包含了boolean、number、string、tuple、enum、any......等。

上述中已經有部分的類型已經存在於JavaScript中,故本篇就不再說明其意義以及與JavaScirpt無差別的部分。

一、變數宣告

TypeScript與JavaScript的變數宣告方式差異不大,但可以於變數名稱加入冒號「:」後表示其變數類型,如無明確敘述變數型別則表示該變數為any類型。

除了可以定義變數為某一類型外,可以透過「|」標示該變數可以為多種類型的聯合類型。

在變數類型的表示上,也可以針對變數本身的值做限制。

var a: boolean = true;
var b: boolean | number = 123;//b可為boolean或number類型
var c: 1 | 2 = 0;//錯誤,該變數的值僅限於 1 或 2;
var d: "男" | "女" = "男";

二、any

任意類型。類似於C#中dynamic的存在。

二、Array

陣列。生成陣列內容與JavaScript無異,而標記變數型別的方式則可使用Array<T>或T[]的方式

var a: number[] = [1,2,3];
var b: Array<number> = [4,5,6];
var c: number[] = new Array(7,8,9);//new Array<T>(...items: T[]);
var d: number[] = new Array<number>(7,8,9);

三、Tuple

定義有固定數量與類別順序的Array,但該Array的元素不用為同一類別。

var a: [boolean, string] = [true, "userA"];
var b: [boolean, string] = [1, "userB"];//錯誤,內容與定義的Tuple不符,1並非boolean
var c: [boolean, string] = [false];//錯誤,內容與定義Tuple不符,遺漏一個string類型的參數
var d: [boolean | number, string] = [1, "userB"];