Typescript支持與Javascript幾乎同樣的數據類型:布爾值、數字、字符串,結構體等,此外Typescript還提供了很實用的枚舉類型。python
let isDone: boolean = false;
和Javascript同樣,Typescript中的數字都是浮點數。
Typescript中的數字支持二進制、八進制、十進制、十六進制。git
let binary: number = 0b1010; let octal: number = 0o744; let decimal: number = 6; let hex: number = 0xf00d;
單雙引號均可以,github
let name: string = "bob"; name = 'smith';
支持跟C#同樣的內嵌表達式,即便用反引號`包圍內嵌字符串,而後以${}的方式嵌入變量:typescript
let name: string = `Gene`; let age: number = 37; let sentence: string = `Hello, my name is ${ name }. I'll be ${ age + 1 } years old next month.`
let list: number[] = [1, 2, 3];
或者這樣定義:編程
let list: Array<number> = [1, 2, 3];
跟python中的元祖同樣,固然跟C#中的元組更像(由於有元素的類型聲明):數組
// Declare a tuple type let x: [string, number]; // Initialize it x = ['hello', 10]; // OK // Initialize it incorrectly x = [10, 'hello']; // Error
enum Color {Red, Green, Blue}; let c: Color = Color.Green;
枚舉默認是從0開始爲元素編號,也能夠手動指定成員的數值:編程語言
enum Color {Red = 1, Green, Blue}; let c: Color = Color.Green;
或者所有指定元素編號:學習
enum Color {Red = 1, Green = 2, Blue = 4}; let c: Color = Color.Green;
能夠經過枚舉值得到枚舉的名字:翻譯
enum Color {Red = 1, Green, Blue}; let colorName: string = Color[2]; alert(colorName); // Green
一般爲那些在編程階段還不可以確認數據類型的變量指定爲Any類型。這些值能夠來自動態內容,好比用戶輸入或是第三方庫。
這種狀況下,咱們不但願類型檢查器對這些值進行檢查而是直接讓它們經過編譯時的檢查。
這時候可使用 any
類型:code
let notSure: any = 4; notSure = "maybe a string instead"; notSure = false; // okay, definitely a boolean
你可能以爲 any
與 Object
的做用同樣。可是,實際並非這樣。
你的確能夠給 Object
類型賦任何類型的值,而後你卻不能在它上面調用任意方法(即便那個對象真的有這些方法)! 可是Any類型能夠!
let notSure: any = 4; notSure.ifItExists(); // okay, ifItExists might exist at runtime notSure.toFixed(); // okay, toFixed exists (but the compiler doesn't check) let prettySure: Object = 4; prettySure.toFixed(); // Error: Property 'toFixed' doesn't exist on type 'Object'.
當你只知道一部分數據的類型的時候, any
類型也頗有用。好比你有一個數組,數組內包含不一樣類型(若是類型全都知道,但是用Tuple):
let list: any[] = [1, true, "free"]; list[1] = 100;
void
有點相似於 any
的反義詞: 它表示沒有任何類型。一般用在沒有返回值的方法:
function warnUser(): void { alert("This is my warning message"); }
聲明一個 void
類型的變量沒啥用,由於你只能給它賦值 undefined
或是 null
:
let unusable: void = undefined;
let
let
是Javascript新添加的一個關鍵字,功能了var
相似,可是它們的做用域不同(詳細本身查)。let
更像是其餘語言中定義變量的關鍵字,因此儘可能用let
來替代var
。
注:原內容來自github上的官方Handbook,這裏我只是作了精簡加翻譯。
寫這個的目的是做爲學習Typescript的筆記,固然發出來也是爲了分享給對Typescript感興趣的同窗。學Typescript,最好有編程語言基礎,最好是學過Javascript或是C#。
另外:這裏有人翻譯的完整版。