[英]How to create and parse string enums with values in Typescript
我知道使用Typescript創建字符串枚舉存在問題,即使在v2.4 +中,我也使用Typescript 2.8和Angular 6。
我想要一個枚舉,並從枚舉中自由獲取字符串值,並將字符串解析為枚舉。
所以假設我有這個枚舉:
export enum MyEnum{
INIT = 'init-room',
CLOSE = 'close-room'
}
該枚舉對與其余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]
-但我不知道該怎么做。
我知道將鍵轉換為值時會遇到問題,而將值轉換為鍵時有效。 因此,我需要任何干凈的代碼解決方案來實現我的目標。
也許嘗試獲得這樣的價值:
return MyEnum.type;
請嘗試以下操作:
enumValues(enumType:any):number[] {
return Object.keys(enumType).map(k => enumType[k]).filter(v => typeof v === "number")
}
enumString(enumType:any, enumValue:any):string {
return enumType[enumValue];
}
您可以安全地切換到常量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.