美文网首页
TS基础(十二)枚举enum

TS基础(十二)枚举enum

作者: Viewwei | 来源:发表于2020-12-25 20:00 被阅读0次

枚举类型定义取值被限定在一定范围内的场景

enum Days {Sun, Mon, Tue, Wed, Thu, Fri, Sat};

枚举成员会被赋值从0开始递增的数字,同时也会对枚举值到枚举名进行反射

enum Days {Sun, Mon, Tue, Wed, Thu, Fri, Sat};

console.log(Days["Sun"] === 0); // true
console.log(Days["Mon"] === 1); // true
console.log(Days["Tue"] === 2); // true
console.log(Days["Sat"] === 6); // true

console.log(Days[0] === "Sun"); // true
console.log(Days[1] === "Mon"); // true
console.log(Days[2] === "Tue"); // true
console.log(Days[6] === "Sat"); // true

枚举手动赋值

枚举支持手动赋值,当使用手动赋值之后的所有都会接上上一个枚举项递增

enum Days {Sun = 3, Mon = 1, Tue, Wed, Thu, Fri, Sat};

console.log(Days["Sun"] === 3); // true
console.log(Days["Wed"] === 3); // true
console.log(Days[3] === "Sun"); // false
console.log(Days[3] === "Wed"); // true

常数枚举和计算所的枚举

常数枚举使用const定义的枚举类型

const enum Directions {
    Up,
    Down,
    Left,
    Right
}

let directions = [Directions.Up, Directions.Down, Directions.Left, Directions.Right];

常数枚举和普通枚举的区别,它在编译阶段被删除,并且不能包含计算成员

//编译结果
var directions = [0 /* Up */, 1 /* Down */, 2 /* Left */, 3 /* Right */];

计算所得枚举

计算枚举就是一个枚举中使用计算方法组合成的一个枚举。当前面一个枚举成员是计算得到的,那么下一个枚举成员需要进行手动赋值,不然会因为没有初始值而报错

enum Color {Red = "red".length, Green, Blue};

// index.ts(1,33): error TS1061: Enum member must have initializer.
// index.ts(1,40): error TS1061: Enum member must have initializer.

相关文章

  • TS基础(十二)枚举enum

    枚举类型定义取值被限定在一定范围内的场景 枚举成员会被赋值从0开始递增的数字,同时也会对枚举值到枚举名进行反射 枚...

  • lesson 4 TS 2021-04-23

    课程标题 路白-TS实战 知识点 基础知识 enum 枚举类型 type interface 联合类型 | 交叉类...

  • TypeScript10(枚举类型)

    在javaScript中是没有枚举的概念TS帮我们定义了枚举这个类型 使用枚举 通过enum关键字定义我们的枚举 ...

  • TS1 基本语法

    ts 指令 基本用法 object 函数 数组 元组 tuple(固定长度的数组) 枚举 enum 或 | 与 ...

  • TS 笔记四 枚举enum

    参考https://github.com/zhongsp/TypeScript[https://github.co...

  • TS基础及常见面试题

    基础知识 基础类型: number string boolean array object enum: 枚举 ty...

  • swift3语法(八)

    枚举/结构体 枚举 定义形式enum 枚举名 { 枚举值} // 例如enum CompassPoint {...

  • java基础

    JAVA基础 基本类型 enum 枚举Size { SMALL , MEDIUM , LARGE , EXTRA ...

  • java枚举

    1.枚举定义 声明枚举 声明枚举时必须使用 enum 关键字,然后定义枚举的名称、可访问性、基础类型和成员等。枚举...

  • Rust 编程语言-6-枚举和模式匹配

    6. Enum和Pattern matching 6.1 Enum枚举 IP地址枚举 消息类型枚举:可以看到枚举中...

网友评论

      本文标题:TS基础(十二)枚举enum

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