美文网首页我爱编程
TypeScript学习-Enums

TypeScript学习-Enums

作者: 指尖泛出的繁华 | 来源:发表于2017-07-01 10:18 被阅读26次

Enums使得我们能够定义有名字的数字常量集

enum Direction {
    Up = 1,
    Down,  // 2
    Left,  // 3 以此类推
    Right
}

枚举体包含0个或多个枚举成员。枚举成员都对应一个数字值,这个数字值可以是constant或者computed

一个枚举值是constant,满足一下条件

  • 它没有进行初始化,而且它的前一个枚举值是常量,那么它对应的数字常量值为前一个枚举值对应的数字常量值+1
  • 被一个常量枚举表达式初始化-是TypeScript表达式的子集,在编译时计算。满足以下条件就为constant enum expression
  • 数字字面量
  • 引用此枚举体或者其他枚举体里面的constant enum member
  • 带括号的constant enum member
  • 使用了+-~constant enum member
  • 使用了+, -, *, /, %, <<, >>, >>>, &, |, ^等二元操作符,并使用constant enum member作操作数
    如果constant enum member计算为NaN或者Infinity则报编译时错误。

其他情况下的枚举成员都认为是被计算的

enum FileAccess {
    // constant members
    None,
    Read    = 1 << 1,
    Write   = 1 << 2,
    ReadWrite  = Read | Write,
    // computed member
    G = "123".length
}

一个枚举在运行时实际上是一个对象。


const enum

大多数情况上使用regular enum,但是如果对于性能有要求,则选择const enumconst enum都是内联的成员。

const enum Directions {
    Up,
    Down,
    Left,
    Right
}
let directions = [Directions.Up, Directions.Down, Directions.Left, Directions.Right]

Ambient enums

用于描述已经存在的enum types的形状

declare enum Enum {
    A = 1,
    B,
    C = 2
}

最重要的不同就是,在non-ambient,中,regular enum中没有初始化的成员为constant member,而在non-const ambient没有初始化的成员为computed member

相关文章

  • TypeScript学习-Enums

    Enums使得我们能够定义有名字的数字常量集 枚举体包含0个或多个枚举成员。枚举成员都对应一个数字值,这个数字值可...

  • How do the different enum varian

    There are four different aspects to enums in TypeScript y...

  • 2020-11-02Typescript(二)

    枚举 Enums[http://docs.vikingship.xyz/typescript.html#%E6%9...

  • enums

    字符串枚举(String Enums) ts v2.4 支持字符串枚举,即枚举的的成员可以是字符串类型,以前只能是...

  • Typescript

    TypeScript(TS)部分 TypeScript学习笔记

  • 【Swift语言】枚举,类和结构体

    参考资料: Getting to Know Enums Swift学习之枚举、类和结构 The Swift Pro...

  • typescript学习

    typescript学习

  • TypeScript入门教程(一)

    学习网址:文档简介 · TypeScript中文网 一、Typescript介绍 1. TypeScript 是由...

  • typescript

    title: typescript学习tags: typescript学习 [toc] 泛型 基本使用 两种使用方...

  • TypeScript 基础

    以下为学习极客时间 《TypeScript 开发实战》的学习记录。 TypeScript 环境配置 安装 ts: ...

网友评论

    本文标题:TypeScript学习-Enums

    本文链接:https://www.haomeiwen.com/subject/vpywcxtx.html