官术网_书友最值得收藏!

5.4.3 異構型枚舉

TypeScript允許在一個枚舉中同時定義數值型枚舉成員和字符串枚舉成員,我們將這種類型的枚舉稱作異構型枚舉。異構型枚舉在實際代碼中很少被使用,雖然在語法上允許定義異構型枚舉,但是不推薦在代碼中使用異構型枚舉。我們可以嘗試使用對象來代替異構型枚舉。

下例中定義了一個簡單的異構型枚舉:


01 enum Color {
02     Black = 0,
03     White = 'White',
04 }

在定義異構型枚舉時,不允許使用計算的值作為枚舉成員的初始值。示例如下:


01 enum Color {
02     Black = 0 + 0,
03     //      ~~~~~
04     //      編譯錯誤!在帶有字符串成員的枚舉中不允許使用計算值
05 
06     White = 'White',
07 }

在異構型枚舉中,必須為緊跟在字符串枚舉成員之后的數值型枚舉成員指定一個初始值。下例中,ColorA枚舉的定義是正確的,但是ColorB枚舉的定義是錯誤的,必須為數值型枚舉成員Black指定一個初始值。示例如下:


01 enum ColorA {
02     Black,
03     White = 'White',
04 }
05 
06 enum ColorB {
07     White = 'White',
08     Black,
09 //  ~~~~~
10 //  編譯錯誤!枚舉成員必須有一個初始值
11 }

主站蜘蛛池模板: 马鞍山市| 天长市| 麻城市| 万源市| 于都县| 天峻县| 临城县| 湖北省| 布尔津县| 石狮市| 陆丰市| 博湖县| 青阳县| 肥乡县| 正蓝旗| 丹阳市| 霞浦县| 南丹县| 会宁县| 咸宁市| 东港市| 新巴尔虎左旗| 郑州市| 开鲁县| 女性| 民勤县| 靖江市| 丁青县| 蒙城县| 巴林右旗| 琼海市| 新河县| 赣榆县| 攀枝花市| 稻城县| 故城县| 仪陇县| 清水县| 南皮县| 儋州市| 东莞市|