對於程序來說我們需要基本的數據單元,如:numbers, strings, structures, boolean 等數據結構。在TypeScript中我們支持很多你所期望在JavaScript中所擁有的數據類型系統。
Boolean
在JavaScript和TypeScript中也具有最基本的邏輯斷言值true/false,采用’boolean’類型。
var isDone: boolean = false;
Number
如JavaScript,TypeScript所有的數值類型采用浮點型計數,其類型為‘number’。
var height: number = 6;
String
在webpages的JavaScript或者服務端的應用程序最基本的功能就是處理文本數據。在其他語言中大多使用’string’去代表文本數據類型。TypeScript和JavaScript一樣也是用雙引號(“)或者單引號包裹文本數據。
var name: string = "bob"; name = 'smith';
Array
在TypeScript中如JavaScript一樣允許我們操結合操作。數組類型可以使用下邊兩種方式之一。
第一種方式,你可以在數據類型之后帶上’[]‘:
var list:number[] = [1, 2, 3];
第二種方式,也可以采用泛型的數組類型:
var list:Array<number> = [1, 2, 3];
Enum
TypeScript為JavaScript新增了枚舉這種標准的集合數據類型。和在c#中一樣,枚舉是為一組數值類型一組更友好的名稱:
enum Color {Red, Green, Blue}; var c: Color = Color.Green;
默認枚舉類型其實數值從0開始,你可以可用手動設置某一個成員的數值。例如我們可以將上文的起始值定為1:
enum Color {Red = 1, Green, Blue}; var c: Color = Color.Green;
或是手動設置全部的枚舉成員:
enum Color {Red = 1, Green = 2, Blue = 4}; var c: Color = Color.Green;
枚舉類型可以和容易從一個數值類型獲取對應枚舉名稱。例如我們有一個數值類型2,但不確認將匹配哪一個枚舉成員,那么我們可以如下使用:
enum Color {Red = 1, Green, Blue}; var colorName: string = Color[2]; alert(colorName);
Any
有時我們需要描述一些我們不知道的什么寫進應用的動態數據類型,這可能來自第三方用戶或者lib。在這里我們希望該數據不要加入TypeScript的類型檢查,是的此值通過編譯時檢查。為此我們可以采用‘any’類型標注:
var notSure: any = 4; notSure = "maybe a string instead"; notSure = false; // okay, definitely a boolean
‘any’類型是一種強大的兼容存在的JavaScript庫的類型系統。他允許跳過TypeScript的編譯時類型的檢查。
‘any’類型對於我們只知道部分數據類型,但是不是所有的數據類型的類型系統。如一個混合了多種類型的集合數組。
var list:any[] = [1, true, "free"]; list[1] = 100;
Void
和‘any’相對的數據類型則是’Void‘,它代表沒有任何數據類型。我們常用的一個方法沒有任何返回值:
function warnUser(): void { alert("This is my warning message"); }