翻譯來源
Introduction
為了要讓更清楚的使用 TypeScript
會從最基本的元件 numbers
, strings
, structures
, boolean
, values
這類的動作, TypeScript
支援宣告這類型的 types
Boolean
宣告最基本的 true/false 在 TypeScript
中稱為 boolean
1 | let isDone: boolean = false; |
Number
和 Javascript 一樣,在 TypeScript
中預設的是浮點數,而這個類別統一為 number
也支援十六進制,十進制,八進制,以及 binary
1 | let decimal: number = 6; |
String
另外一種工程師常用的類型是字串,這種形態使用 string
來做宣告,在 TypeScript
中都允許使用單引號(‘) 或是 雙引號(“) 來做字串的宣告
1 | let color: string = "blue"; |
你也可以使用 template strings
,宣告使用 backtick/backquote(`)
1 | let fullName: string = `Bob Bobbington`; |
這個 template strings
也可以寫成
1 | let sentence: string = "Hello, my name is " + fullName + ".\n\n" + |
Array
TypeString
和 Javascirpt依樣允許你使用 Array, 宣告時使用 []
來做類型宣告
1 | let list: number[] = [1,2,3]; |
Tuple
Tuple
允許你宣告每一個參數的類型
1 | let x : [string, number]; |
好處就是當你明確的定義類型的時候,使用的時候就會有明確的錯誤訊息
1 | let x : [string, number]; |
Enum
另外一種特別的型別事 enum
你可以定義哪些允許的類型列表
1 | enum Color {Red, Green, Blue} |
你也可以設定 enum
得值
1 | enum Color { |
也可以直接定義 key值
1 | enum Color { |
Any
我們要描述一個變數,但是在攥寫程式的當下不知道他的類型,這個值是屬於動態的內容,所以可以利用 any
來做宣告
1 | let notSure: any = 4; |
any
類型相當的彈性,你也許會期望 object
也會有一樣的情況,但是 object
並不允許你呼叫任意的函式,即使他真的存在
1 | let notSuer: any = 4; |
Void
void
有一點像 any
, 他並沒有任何類型,你可以在沒有回傳的函式中使用它
1 | function warnUser():void{ |
當你宣告變數為 void
的時候,你只能 assign undefined
或是 null
1 | let unsable: void = undefined; |
Null 和 Undefined
在 TypeScript
中 undefined
和 null
有他的類型就叫做 undefined
和 null
就像 void
,他們沒瞎小路用
1 | let u: undefined = undefined; |
預設 null
和 undefined
是各種類型的亞類型,也就是你可以 assign null
或是 undefined
給 number
類型的變數
然而若是你在 tsconfig.json
中的選項 strictNullChecks
設定為 true 則 null
和 undefined
只能 assign 給 void
和他們的各自類型。
若是一個變數有多重可能,你也可以利用 union
類型
1 | let notSure: string | null | undefined; |
Never
never
類型代表永遠不會發生,例如你的函式確認永遠都不會回傳任何值,那麼你就可以利用 never
類型
或是某一個變數永遠都是 false 你也可以設定他為 never
1 | function error(message: string): never{ |