我有一些需要存储为ENUM的选项列表。问题在于所有选项都是字母数字。
示例列表
1.134/2394 x 3-xyz
2.123/234 y 3-ery
3.345/99 t 4-red
4.4.1hv 3 secondary
5.2.51hv 3 secondary
6.1.61hv 3 secondary
我们如何将其作为选项存储在Typescript中。任何想法将不胜感激。
答案 0 :(得分:0)
你可以做这样的事情吗?
enum x {
'1.134/2394 x 3-xyz' = 2,
'2.123/234 y 3-ery',
}
console.log(x['2.123/234 y 3-ery'])
// this will print '3'
答案 1 :(得分:0)
实际上enums
是javascript对象。创建enum
时,可以选择访问对象。
因此,如果您的密钥包含字母数字和空格,则无法在枚举名称后使用.
,例如-StatusCode.Ok 2
,这将产生错误。
因此,根据您的情况,您需要使用分配的编号或分配的密钥来访问对象。这是你的选择。因此您可以像这样StatusCode['OK']
进行访问。
看下面的例子。 Source
/*
enum StatusCodes {
OK = 200,
BadRequest = 400,
Unauthorized,
PaymentRequired,
Forbidden,
NotFound
};
*/
// The above enum is converted to the Javasscript object like this.
var StatusCodes;
(function(StatusCodes) {
StatusCodes[StatusCodes["OK"] = 200] = "OK";
StatusCodes[StatusCodes["BadRequest"] = 400] = "BadRequest";
StatusCodes[StatusCodes["Unauthorized"] = 401] = "Unauthorized";
StatusCodes[StatusCodes["PaymentRequired"] = 402] = "PaymentRequired";
StatusCodes[StatusCodes["Forbidden"] = 403] = "Forbidden";
StatusCodes[StatusCodes["NotFound"] = 404] = "NotFound";
})(StatusCodes || (StatusCodes = {}));
// Ways to access the enum.
console.log(StatusCodes.OK);
console.log(StatusCodes["OK"]);
console.log(StatusCodes["200"]);