原文出處:javascript
http://www.typescriptlang.org/Handbookjava
基於對web開發的須要和對安神的崇拜,打算學習一下typescript。web
能力有限,基本屬於在本身認識的基礎上進行的翻譯,錯誤不免,主要是經過翻譯來學習。typescript
基本類型
在編程中咱們須要用到的一些簡單的數據元素,好比:數值,字符串,結構體,布爾型,等等。
如你所願,在javascript裏面的那些數據類型,TypeScript都支持,
with a convenient enumeration type thrown in to help things along.(這句暫時沒理解好)編程
布爾型(Boolean)
最基本的數據類型是簡單的真或假,在javascript和TypeScript(以及其餘語言)中定義爲'boolean'。數組
var isDone: boolean = false;
數值型(Number)
和JavaScript同樣,在TypeScript中全部的數值類型都是浮點類型。這些浮點類型值被定義爲'number'。服務器
var height: number = 6;
字符串(String)
用javascript編寫網頁和服務器程序時,另外一個基本的部分就是針對文本數據的工做。
和其餘語言同樣,咱們用'string'來定義文本數據類型,和javascript同樣,typescript也使用雙引號(")
或者單引號(')把字符串數據括起來。函數
var name: string = "bob"; name = 'smith';
數組(Array)
typescript和javascript同樣,容許你使用數組。數組類型能夠用兩種方法中的任何一種來定義。
第一種,你能夠經過元素的類型接中括號[]來表示一個指定元素類型的數組:學習
var list:number[] = [1, 2, 3];
第二種,使用通用的數組類型,Array<元素類型>:spa
var list:Array<number> = [1, 2, 3];
注:我我的喜歡第二種。
枚舉(Enum)
'enum'是對javascript中標準的集合類型的有用擴展。像其餘語言,好比C#,枚舉能夠爲集合類型的數值定義一個更加友好的名稱。
enum Color {Red, Green, Blue}; var c: Color = Color.Green;
默認狀況下,枚舉的元素的序號是用0開始的。咱們能夠手工設置元素的序號。例如,咱們能夠用1代替開始元素的0:
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)
當咱們寫程序時,可能須要定義一個還不知道具體類型的變量。這些值可能來自動態的內容,例如從用戶或第三方庫。
在這些狀況下,咱們要選擇退出類型檢查,並讓值經過編譯時檢查。這時,咱們經過'any'來標記:
var notSure: any = 4; notSure = "maybe a string instead"; notSure = false; // okay, definitely a boolean
any類型在現有的javascript中是一個強大有力的方法,容許您在編譯過程當中逐步選擇和退出類型檢查。
注:在我看來是兼容javascript的弱類型。
any類型在你可能只是知道該類型的某一部份內容時,頗有用。例如,你可能定義一個數組,可是這個數組混合了不一樣的類型:
var list:any[] = [1, true, "free"]; list[1] = 100;
注:相似Delphi的variant,或者TValue。
無類型(Void)
也許有時候,any類型並不能準確表示'無',即沒有任何類型的類型,不能用某種類型類表示。
您一般能夠將此視爲不返回值的返回類型的函數:
function warnUser(): void { alert("This is my warning message"); }