首页 > 解决方案 > 如何使用 Typescript 中的值创建和解析字符串枚举

问题描述

我知道使用 Typescript 创建字符串枚举存在问题,即使在 v2.4+ 中我使用的是 typescript 2.8 和 Angular 6。

我想要一个枚举并从枚举中自由获取字符串值,并将字符串解析为枚举。

所以假设我有这个枚举:

export enum MyEnum{
  INIT = 'init-room',
  CLOSE = 'close-room'
}

这个枚举对于与 REST API 通信很有用。所以从 API 到 API 我必须发送字符串。但是在应用程序内部,我想尽快将字符串从 API 转换为枚举。

所以我想要有函数来解析和字符串化我的枚举。

我尝试这种方法,但这不起作用。

export function toString(type: MyEnum): string {
    return MyEnum[type];
}

export function parse(type: string): Mode {
    return MyEnum[type];
}

好吧,这并不奇怪,因为我想value从这个枚举中获取,而不是MyEnum[type]- 但我不知道该怎么做。

我知道将键转换为值存在问题,而值到键有效。所以我要求任何干净的代码解决方案来实现我的目标。

标签: angulartypescriptenums

解决方案


您可以安全地切换到常量。


推荐阅读