TypeScript基础入门 - 枚举 - 异构枚举和枚举成员

转载node

TypeScript基础入门 - 枚举 - 异构枚举和枚举成员

项目实践仓库git

https://github.com/durban89/typescript_demo.git
tag: 1.3.6

为了保证后面的学习演示须要安装下ts-node,这样后面的每一个操做都能直接运行看到输出的结果。github

npm install -D ts-node

后面本身在练习的时候能够这样使用typescript

npx ts-node 脚本路径

枚举

枚举

使用枚举咱们能够定义一些带名字的常量。 使用枚举能够清晰地表达意图或建立一组有区别的用例。 TypeScript支持数字的和基于字符串的枚举。npm

异构枚举(Heterogeneous enums)

从技术的角度来讲,枚举能够混合字符串和数字成员,可是彷佛你并不会这么作:学习

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


除非你真的想要利用JavaScript运行时的行为,不然咱们不建议这样作。spa

计算的和常量成员

每一个枚举成员都带有一个值,它能够是 常量或 计算出来的。 当知足以下条件时,枚举成员被看成是常量:code

它是枚举的第一个成员且没有初始化器,这种状况下它被赋予值 0:对象

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

它不带有初始化器且它以前的枚举成员是一个 数字常量。 这种状况下,当前枚举成员的值为它上一个枚举成员的值加1。blog

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.git
tag: 1.3.7
相关文章
相关标签/搜索