千家信息网

TypeScript中枚举类型的示例分析

发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,这篇文章给大家分享的是有关TypeScript中枚举类型的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、是什么枚举是一个被命名的整型常数的集合,用于声明一组命名
千家信息网最后更新 2025年11月16日TypeScript中枚举类型的示例分析

这篇文章给大家分享的是有关TypeScript中枚举类型的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

    一、是什么

    枚举是一个被命名的整型常数的集合,用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型

    通俗来说,枚举就是一个对象的所有可能取值的集合

    在日常生活中也很常见,例如表示星期的SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY就可以看成是一个枚举

    枚举的说明与结构和联合相似,其形式为:

    enum 枚举名{
    标识符①[=整型常数],
    标识符②[=整型常数],
    ...
    标识符N[=整型常数],
    }枚举变量;

    二、使用

    枚举的使用是通过enum关键字进行定义,形式如下:

    enum xxx { ... }

    声明关键字为枚举类型的方式如下:

    // 声明d为枚举类型Directionlet d: Direction;

    类型可以分成:

    • 数字枚举

    • 字符串枚举

    • 异构枚举

    数字枚举

    当我们声明一个枚举类型是,虽然没有给它们赋值,但是它们的值其实是默认的数字类型,而且默认从0开始依次累加:

    enum Direction {    Up,   // 值默认为 0    Down, // 值默认为 1    Left, // 值默认为 2    Right // 值默认为 3}console.log(Direction.Up === 0); // trueconsole.log(Direction.Down === 1); // trueconsole.log(Direction.Left === 2); // trueconsole.log(Direction.Right === 3); // true

    如果我们将第一个值进行赋值后,后面的值也会根据前一个值进行累加1:

    enum Direction {    Up = 10,    Down,    Left,    Right}console.log(Direction.Up, Direction.Down, Direction.Left, Direction.Right); // 10 11 12 13

    字符串枚举

    枚举类型的值其实也可以是字符串类型:

    enum Direction {    Up = 'Up',    Down = 'Down',    Left = 'Left',    Right = 'Right'}console.log(Direction['Right'], Direction.Up); // Right Up

    如果设定了一个变量为字符串之后,后续的字段也需要赋值字符串,否则报错:

    enum Direction { Up = 'UP', Down, // error TS1061: Enum member must have initializer Left, // error TS1061: Enum member must have initializer Right // error TS1061: Enum member must have initializer}

    异构枚举

    即将数字枚举和字符串枚举结合起来混合起来使用,如下:

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

    通常情况下我们很少会使用异构枚举

    本质

    现在一个枚举的案例如下:

    enum Direction {    Up,    Down,    Left,    Right}

    通过编译后,javascript如下:

    var Direction;(function (Direction) {    Direction[Direction["Up"] = 0] = "Up";    Direction[Direction["Down"] = 1] = "Down";    Direction[Direction["Left"] = 2] = "Left";    Direction[Direction["Right"] = 3] = "Right";})(Direction || (Direction = {}));

    上述代码可以看到, Direction[Direction["Up"] = 0] = "Up"可以分成

    • Direction["Up"] = 0

    • Direction[0] = "Up"

    所以定义枚举类型后,可以通过正反映射拿到对应的值,如下:

    enum Direction {    Up,    Down,    Left,    Right}console.log(Direction.Up === 0); // trueconsole.log(Direction[0]); // Up

    并且多处定义的枚举是可以进行合并操作,如下:

    enum Direction {    Up = 'Up',    Down = 'Down',    Left = 'Left',    Right = 'Right'}enum Direction {    Center = 1}

    编译后,js代码如下:

    var Direction;(function (Direction) {    Direction["Up"] = "Up";    Direction["Down"] = "Down";    Direction["Left"] = "Left";    Direction["Right"] = "Right";})(Direction || (Direction = {}));(function (Direction) {    Direction[Direction["Center"] = 1] = "Center";})(Direction || (Direction = {}));

    可以看到,Direction对象属性回叠加

    三、应用场景

    就拿回生活的例子,后端返回的字段使用 0 - 6 标记对应的日期,这时候就可以使用枚举可提高代码可读性,如下:

    enum Days {Sun, Mon, Tue, Wed, Thu, Fri, Sat};console.log(Days["Sun"] === 0); // trueconsole.log(Days["Mon"] === 1); // trueconsole.log(Days["Tue"] === 2); // trueconsole.log(Days["Sat"] === 6); // true

    包括后端日常返回0、1 等等状态的时候,我们都可以通过枚举去定义,这样可以提高代码的可读性,便于后续的维护

    感谢各位的阅读!关于"TypeScript中枚举类型的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

    类型 字符 字符串 常数 代码 数字 变量 标识 标识符 示例 分析 关键 关键字 内容 可以通过 可读性 字段 对象 形式 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全条例第41条 路由器上网方式设置服务器无反应 国产化服务器什么价位 公安信息网络安全教育材料 所以无法获得对数据库的独占 杭州程序软件开发机构 gcc绿色计算服务器管理 麒麟服务器登录mysql数据库 2020陕西网络安全视频会议 酷诗网络技术工作室 esi数据库的使用步骤吗 康乐网络安全宣传 提取某个数值后的数据库 卫生系统网络安全自查报告 急缺网络安全工作 前端和网络安全哪个适合零基础 巴可8s放映机服务器5817 赛迪网络安全研究所领导班子 项目团队完成了一个从旧数据库 江门卫星软件开发商家 网络安全法说成为网络安全 网络安全实践课后题 王者荣耀元旦服务器崩了 c盘满了移动数据库 永嘉软件开发找哪家 杭州亚运会网络安全 如何测试服务器回国线路 监管平台查验服务器是否满一年 网络安全 教育目的 软件开发 权限管理
    0