Typescript 中枚举(上)

作者 : 开心源码 本文共1276个字,预计阅读时间需要4分钟 发布时间: 2022-05-12 共193人阅读

可以在初始化枚举时对 Up 赋值,枚举好处是给我们一种不可以修改的集合可以用来作为配置选项,我们无法在随后动态修改

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

这是枚举编译后的 js 文件,

编译后的枚举

var Direction;(function (Direction) {    Direction[Direction["Up"] = 1] = "Up";    Direction[Direction["Down"] = 2] = "Down";    Direction[Direction["Left"] = 3] = "Left";    Direction[Direction["Right"] = 4] = "Right";})(Direction || (Direction = {}));
var Direction;(function (Direction) {    Direction[Direction["Up"] = 1] = "Up";    Direction[Direction["Down"] = 2] = "Down";    Direction[Direction["Left"] = 3] = "Left";    Direction[Direction["Right"] = 4] = "Right";})(Direction || (Direction = {}));Direction.OK = 1;console.log(Direction.Up)console.log(Direction.OK)

我们是可以为 Direction 动态增加属性。当我们调用 Direction.Up 发生了什么?
Direction[“Up”] = 1 这个不难了解

var obj = {};// obj["Up"] = 1;obj[obj["Up"] = 1]console.log(obj.Up) //1
// obj["Up"] = 1;obj[obj["Up"] = 1] = "Up"console.log(obj.Up)console.log(obj.Up = 1) //1console.log(obj[1]) // Up

通过上面代码解释我们大家可能为 typescript 如何实现 enum 有所理解了吧,大家可以在自己 js 项目这样来定义您的枚举结构。

无初始化的枚举

也可以创立枚举时不给初始值

enum Direction {    Up,    Down,    Left,    Right,}

枚举的调用

enum Response {    No = 0,    Yes = 1,}function respond(recipient: string, message: Response): void {    // ...}respond("Princess Caroline", Response.Yes)

调用枚举也很简单,就像调用对象属性一样简单。

枚举的表达式赋值

enum E{    A = getSomeValue(),    B // error! 'A' 是表达式初始化而不是固定值所以 'B' 需要初始化     }function getSomeValue(){    return 1;}
enum E{    A = getSomeValue(),    B = getSomeValue()    }function getSomeValue(){    return 1;}

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Typescript 中枚举(上)

发表回复