TypeScript基礎入門 - 枚舉 - 異構枚舉和...

TypeScript基礎入門 - 枚舉 - 異構枚舉和...

1 人贊了文章

轉載

TypeScript基礎入門 - 枚舉 - 異構枚舉和枚舉成員 - 博文 - Gowhich?

www.gowhich.com圖標

項目實踐倉庫

https://github.com/durban89/typescript_demo.gittag: 1.3.6

為了保證後面的學習演示需要安裝下ts-node,這樣後面的每個操作都能直接運行看到輸出的結果。

npm install -D ts-node

後面自己在練習的時候可以這樣使用

npx ts-node 腳本路徑

枚舉

枚舉

使用枚舉我們可以定義一些帶名字的常量。 使用枚舉可以清晰地表達意圖或創建一組有區別的用例。 TypeScript支持數字的和基於字元串的枚舉。

異構枚舉(Heterogeneous enums)

從技術的角度來說,枚舉可以混合字元串和數字成員,但是似乎你並不會這麼做:

enum BooleanLikeHeterogeneousEnum { No = 0, Yes = "YES",}

除非你真的想要利用JavaScript運行時的行為,否則我們不建議這樣做。

計算的和常量成員

每個枚舉成員都帶有一個值,它可以是 常量或 計算出來的。 當滿足如下條件時,枚舉成員被當作是常量:

它是枚舉的第一個成員且沒有初始化器,這種情況下它被賦予值 0:

// E.X is constant:enum E { X }

它不帶有初始化器且它之前的枚舉成員是一個 數字常量。 這種情況下,當前枚舉成員的值為它上一個枚舉成員的值加1。

enum E1 { X, Y, Z }enum E2 { A = 1, B, C}

枚舉成員使用 常量枚舉表達式初始化。 常數枚舉表達式是TypeScript表達式的子集,它可以在編譯階段求值。 當一個表達式滿足下麵條件之一時,它就是一個常量枚舉表達式:

  • 一個枚舉表達式字面量(主要是字元串字面量或數字字面量)
  • 一個對之前定義的常量枚舉成員的引用(可以是在不同的枚舉類型中定義的)
  • 帶括弧的常量枚舉表達式
  • 一元運算符 +, -, ~其中之一應用在了常量枚舉表達式
  • 常量枚舉表達式做為二元運算符 +, -, *, /, %, <<, >>, >>>, &, |, ^的操作對象。 若常數枚舉表達式求值後為 NaN或 Infinity,則會在編譯階段報錯。

所有其它情況的枚舉成員被當作是需要計算得出的值。

enum FileAccess { // 常量 None, Read= 1 << 1, Write = 1 << 2, ReadWrite = Read | Write, // 計算出來的 G = "123".length,}

本實例結束實踐項目地址

https://github.com/durban89/typescript_demo.gittag: 1.3.7

推薦閱讀:

實分析Ⅱ|筆記整理(7)——勒貝格積分後續應用
群的線性表示和例子
蘇科版九年級上下冊數學同步練習答案
Bernoullis inequality的證明及簡單應用

TAG:TypeScript | 科技 | 數學 |