TypeScript学习笔记7-枚举

在 TypeScript 中,枚举(Enum)是一种数据类型,用于定义一组具名的常量值。

枚举可以帮助开发人员在代码中使用可读性更强的符号来表示固定的数值或状态。

枚举的定义类似于对象字面量,其中包含一组键值对,键表示枚举成员的名称,值表示枚举成员的值。

数字枚举

enum Color {
    Red, // 0
    Blue, // 1
    Green, // 2
}

let c1:Color = Color.Blue
let c2:Color = 5  // 编译会失败
let c3:Color = "234" // 直接失败

如果是纯数字,下面的会进行自动增长

自动从0开始

enum Color {
    Red=100,
    Blue, // 101
    Green, // 102
    Yellow, // 103
}

如果中断了,那么下面的就从中断的地方继续增长

enum Color {
    Red=100,
    Blue, // 101
    Green=103, // 103
    Yellow, // 104
}

字符串枚举

它不能自动增长

enum Color {
    Red="red",
    Blue, // 报错
}

如果是字符串,那么定义的时候就要全部写上

enum Color {
    Red="red",
    Blue="blue",
}

接口枚举

enum Color {
    Red,
    Blue,
    Yellow
}

interface ColorInter {
    color: Color,
    blue: Color.Blue
}


let c1: ColorInter = {
    color: Color.Red, // 这个color只能是Color里面的值
    blue: Color.Blue, // blue就只能写 Color.Blue
}

const枚举

主要作用就是节省因为枚举带来的性能消耗

enum Color {
    Red = 2,
    Blue,
    Yellow
}

interface ColorInter {
    color: Color,
    blue: Color.Blue
}


let c1: ColorInter = {
    color: Color.Red, // 这个color只能是Color里面的值
    blue: Color.Blue, // blue就只能写 Color.Blue
}

编译之后

var Color;
(function (Color) {
    Color[Color["Red"] = 2] = "Red";
    Color[Color["Blue"] = 3] = "Blue";
    Color[Color["Yellow"] = 4] = "Yellow";
})(Color || (Color = {}));
var c1 = {
    color: Color.Red,
    blue: Color.Blue, // blue就只能写 Color.Blue
};
const enum Color {
    Red = 2,
    Blue,
    Yellow
}

interface ColorInter {
    color: Color,
    blue: Color.Blue
}


let c1: ColorInter = {
    color: Color.Red, // 这个color只能是Color里面的值
    blue: Color.Blue, // blue就只能写 Color.Blue
}

编译之后

var c1 = {
    color: 2 /* Color.Red */,
    blue: 3 /* Color.Blue */, // blue就只能写 Color.Blue
};

注释:笔记是一边看b站枫枫视频一边做的笔记 

相关推荐

  1. TypeScript学习笔记7-

    2024-04-24 18:28:03       11 阅读
  2. TypeScript

    2024-04-24 18:28:03       23 阅读
  3. TypeScript中的

    2024-04-24 18:28:03       7 阅读
  4. TypeScript简介以及使用方法】

    2024-04-24 18:28:03       10 阅读
  5. C#(C Sharp)学习笔记_Enum类型【十三】

    2024-04-24 18:28:03       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-24 18:28:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-24 18:28:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-24 18:28:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-24 18:28:03       18 阅读

热门阅读

  1. TCP案例-实时群聊

    2024-04-24 18:28:03       9 阅读
  2. AIGC技术/趋势

    2024-04-24 18:28:03       9 阅读
  3. Git泄露

    Git泄露

    2024-04-24 18:28:03      13 阅读
  4. 面向对象设计模式

    2024-04-24 18:28:03       11 阅读
  5. 【nginx安装内置的http_image_filter_module】

    2024-04-24 18:28:03       12 阅读
  6. 卡口车辆智能检索系统

    2024-04-24 18:28:03       10 阅读
  7. SQL仓库

    2024-04-24 18:28:03       9 阅读