因此,进一步寻找,我发现这个人有一个解决方案: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 editor给了我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中
我在TypeScript中定义了以下枚举: 现在在我的函数中,我接收颜色作为字符串。我已经尝试了以下代码: 如何将该值转换为枚举?
我是MVC编程的新手。所以我用的是play框架。 获取未捕获的引用Error:未定义MODERATED
是否有任何方法使TypeScript枚举与JSON中的字符串兼容? 例如: 我想要是真的。或者更具体地说,我希望可以将值指定为字符串,而不是数字。 我知道我可以使用但这很麻烦,而且似乎会使枚举类型注释混淆和误导,从而破坏了它的用途。从技术上讲,JSON没有提供有效的枚举值,所以我不应该在枚举中键入属性。 所以我现在做的是使用带有静态常量的字符串类型: 这就得到了我想要的用法,但是类型注释太宽泛了,
我想用Typescript写这样的东西: 并按如下方式使用: 它会返回的地方 上面的函数按预期工作…但是输入抛出错误。对于
我正在尝试将Typecript枚举值转换为数字,以便在我的下拉列表中显示枚举字符串值,但在提交按钮上,传递的是该值而不是字符串。枚举设置如下。 到目前为止,我已经能够控制台.log对象的键(字符串)(例如 Value),但我想做的是在发出对象后传递 0(数字)值。 我该怎么做?
问题内容: 有什么方法可以让TypeScript枚举与JSON中的字符串兼容? 例如: 我 想 是真的。更具体地说,我希望可以将值定义为 字符串 ,而不是数字。 我知道我可以使用,但这很麻烦,而且似乎使枚举类型注释变得混乱和误导,从而违背了它的目的。JSON从技术上讲 不会 提供有效的枚举值,因此我不应该在枚举中键入属性。 所以我目前正在做的是使用带有静态常量的字符串类型: 这为我提供了我想要的用