【发布时间】:2017-06-08 18:59:47
【问题描述】:
我想在 typescript 中有一组字符串枚举,这样我就可以做一些事情,比如让用户从一组预定义的选项中进行选择。
我在这个答案中找到了一个很好的解决方案:How to convert string to enum in TypeScript?
但是,这仅适用于单个单词...(基本上,上面允许您获取枚举名称值 - 并且其中不能有空格)。
所以,进一步看,我发现这个人有一个解决方法:Workaround for string based enums in typescript
这将允许这样的事情:
export enum EventType {
Photoshoot = <any>"Photoshoot",
BookingMeeting = <any>"Booking Meeting",
PostShootMeeting = <any>"Post Shoot Meeting",
Purchase = <any>"Purchase",
Print = <any>"Print"
}
唯一的回应基本上是说这样做是不安全的。 (但我应该说,它确实有效——我可以输入 EventType.dot ...并且 Atom 编辑器为我提供了 5 个驼峰式选项可供选择(保持代码中的内容一致)我然后可以使用它来吐出字符串值,为我的用户提供良好的充满空间的体验,将来我可以更改枚举和不同的语言/选项措辞,而不会弄乱“代码”等等。 .
有没有更好的方法来做到这一点?我宁愿不要“不安全”地这样做——但我不知道还有其他方法。
【问题讨论】:
-
你可以用静态只读字符串而不是枚举来定义类
-
基于这个公开的问题github.com/Microsoft/TypeScript/issues/1206,我认为你的工作是目前最好的方法。事实上,解决方法已在其中一个 cmets 中列出。
标签: javascript typescript enums