我想在typescript中有一组字符串枚举,所以我可以做一些事情,比如让用户从一组预定义的选项中进行选择.
我在这个答案中找到了一个很好的解决方案:如何在TypeScript中将字符串转换为枚举?
但是,这仅适用于单个单词...(基本上,上面允许您获取枚举名称值 - 并且不能在其中包含空格).
所以,进一步看,我发现这个人有一个解决方法:在typescript中基于字符串的枚举的解决方法
这将允许这样的事情工作:
export enum EventType { Photoshoot ="Photoshoot", BookingMeeting = "Booking Meeting", PostShootMeeting = "Post Shoot Meeting", Purchase = "Purchase", Print = "Print" }
唯一的回应基本上说这样做是不安全的.(但我应该说,它的工作-我可以输入事件类型.点 ......和Atom的编辑给我的5驼峰选项,从(保持事物的代码一致的选择),那么我可以用它来有字符串值吐出来给我的用户一个充满空间的体验,将来我可以更改枚举和不同的语言/选项措辞,而不会弄乱'代码'等等...
有一个更好的方法吗?我宁愿不"不安全" - 但我不知道其他任何方式.
TypeScript枚举是基于数字的.您可以使用带有联合类型的字符串文字来模拟基于字符串的枚举,如下面的CardinalDirection示例所示.
type CardinalDirection = "North" | "East" | "South" | "West"; function move(distance: number, direction: CardinalDirection) { // ... } move(1,"North"); // Okay move(1,"Nurth"); // Error!
更多信息:https: //basarat.gitbooks.io/typescript/content/docs/types/literal-types.html
字符串枚举在即将开始 https://github.com/Microsoft/TypeScript/issues/3192