学习 TypeScript 10 (枚举类型)

学习地址:学习TypeScrip10(枚举类型)_小满zs的博客-CSDN博客

在JavaScript中是没有枚举的概念的,TS帮我们定义了枚举这个类型。

使用枚举  通过 enum 关键字定义我们的枚举

1.数字枚举

例如  红绿蓝 Red = 0 Green = 1  Blue = 2 分别代表红色0 绿色为1 蓝色为2

enum Types {
    Red,
    Green,
    Blue
}

这样写就可以实现为ts定义的枚举中的每一个组员默认都是从0开始的,所以也就是

enum Types{
    Red = 0,
    Green = 1,
    Blue = 2
}
//默认就是从 0 开始的,可以不写值

增长枚举

enum Types {
    Red = 1,
    Green,
    Blue
}

如上,我们定义了一个数字枚举,Red使用初始化为 1 , 其他的成员会从1开始自动增长。换句话说,Type.Red 的值为1,Green 为 2, Blue 为 3.

2.字符串枚举

字符串枚举的概念很简单。在一个字符串枚举中,每个成员都必须用字符串字面量,或另一个字符换枚举成员进行初始化。

enum Types{
    Red = 'Red',
    Green = 'Green',
    Blue = 'Blue'
} 

犹豫字符串枚举没有自增长的行为,字符串枚举可以很好的序列化。换句话说,如果你正在调试并且必须要读一个数字枚举的运行时的值,这个值通常是很难读的 - 它并不能表达有用的信息,字符串枚举允许你提供一个运行时有意义的并且可读的值,独立于枚举成员的名字。

3.异构枚举

枚举可以混合字符串和数字成员

enum Types{
    No = 'No',
    Yes = 1
}

4.接口枚举

定义一个枚举Types,定义一个接口A ,他有一个属性red,值为 Types.yyds

生命对象的时候,要遵循这个规则

enum Types{
    yyds,
    dddd
}
interface A {
    red: Types.yyds
}

let obj:A = {
    res: Types.yyds
}

5. const 枚举

let 和 var 都是不允许的声明,只能使用const

大多数情况下,枚举是十分有效的方案。然而在某些情况下需求很严格。为了避免在额外生成的代码上的开销和额外的非直接的对枚举成员的访问,我们可以使用 const枚举。常量枚举通过在枚举上使用const 修饰符来定义

const 生命的枚举会被定义为常量

普通声明的枚举编译完后是个对象

const enum Types {
    No = 'No',
    Yes = 1
}

6. 反向映射

它包含了正向映射(name->value),和反向映射(value -> name)

要注意的是,不会为字符串枚举成员,生成反向映射

enum Enum {
    fall
}
let a = Enum.fall
console.log(a)          // 0
let nameOfA = Enum[a]
console.log(nameOfA)   // fall

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值