Enum 就是 enumeration .. 比如在 Post 里面,可能有一个表示文章发布状态的属性 .. 起个名字可以叫 status .. 它的值的类型是数字 .. 比如数字 0 可以表示未发布的状态,数字 1 表示已发布的状态 ..
这样下面这个 post 里面就需要再添加一个 stauts 属性,它的值是个数字 .. 这种代码不太容易明白 .. 因为别人不能马上知道不同的数字表示的真正的意义是什么 .. 我们可以用一些注释来说明一下 ..
或者可以使用 TypeScript 里面提供的 enum 功能 ..
先去定义一个 enum,用一下 enum 这个关键词 .. 里面是一些数据 .. Unpublished .. Published ... 再添加一个 Draft ..
有了这个 enum 以后,可以让 Post 里面的这个 status 属性的类型是这个 PostStatus .. 就是上面定义的这个 enum ..
这样设置 status 属性的值的时候就不用直接使用数字了,可以使用更友好的名字 .. 比如这个 post 它的发布状态是未发布 .. 这个值就是 PostStatus 这个 enum 里的 UnPublished .. 输入 PostStatus,加上一个点以后,编辑器会出现提示 .. 告诉我们这个 enum 里面的一些数据的名字,还有它具体表示的那个值 ..Draft 是数字 2 .. Published 是数字 1 ,UnPublished 是数字 0 ... 先用一下这个 UnPublished ..
下面在控制台上输出这个 post .. 保存一下文件 ... 再打开编译之后的 .js 文件看一下 .. 我们刚才定义的 enum 会被编译成这样的 JavaScript 代码 ..
回到命令行 .. 用 node 运行一下 dist 下面的 app.js ... 会输出 post 里的内容 .. 你会看到,它里面的 status 这个属性的值就是数字 0 ..
回到项目再试一下 .. 在控制台上输出 PostStatus[0] ... 再回到命令行,运行一下 dist/app.js .. PostStatus[0],输出的值会是 Unpublished ..