Typescript Handbook 精簡版之基礎類型

簡介

Typescript支持與Javascript幾乎同樣的數據類型:布爾值、數字、字符串,結構體等,此外Typescript還提供了很實用的枚舉類型。python

Boolean(布爾值)

let isDone: boolean = false;

Number(數字)

和Javascript同樣,Typescript中的數字都是浮點數。
Typescript中的數字支持二進制、八進制、十進制、十六進制。git

let binary: number = 0b1010;
let octal: number = 0o744;
let decimal: number = 6;
let hex: number = 0xf00d;

String(字符串)

單雙引號均可以,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.`

Array(數組)

let list: number[] = [1, 2, 3];

或者這樣定義:編程

let list: Array<number> = [1, 2, 3];

Tuple(元組)

跟python中的元祖同樣,固然跟C#中的元組更像(由於有元素的類型聲明):數組

// Declare a tuple type
let x: [string, number];
// Initialize it
x = ['hello', 10]; // OK
// Initialize it incorrectly
x = [10, 'hello']; // Error

Enum(枚舉)

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類型。這些值能夠來自動態內容,好比用戶輸入或是第三方庫。
這種狀況下,咱們不但願類型檢查器對這些值進行檢查而是直接讓它們經過編譯時的檢查。
這時候可使用 any 類型:code

let notSure: any = 4;
notSure = "maybe a string instead";
notSure = false; // okay, definitely a boolean

你可能以爲 anyObject 的做用同樣。可是,實際並非這樣。
你的確能夠給 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(空類型)

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#。

另外:這裏有人翻譯的完整版。

相關文章
相關標籤/搜索