【发布时间】:2017-08-30 17:52:48
【问题描述】:
我有一个基于字符串的枚举(TypeScript 2.4+ 支持)。将字符串转换为相应枚举值的最佳方法是什么(如果存在?)。如果它不存在,则默认为一个值就可以了。
export enum Theory {
RLJ = 'r + l = j',
WinterIsComing = 'winter is coming',
TyrionIsAarysSon = 'i buy it',
YoungGriffIsReal = 'doubtfull'
}
我从以下开始,这当然行不通。
function getTheory(theoryString: string): Theory {
let theory: Theory = Theory.RLJ;
if (theoryString in Theory) {
theory = theoryString as Theory;
}
return theory;
}
一种可行的方法是创建一个枚举值映射来命名,并进行反向查找,但似乎没有必要(或者 TypeScript 有更好的内置方法)。
【问题讨论】:
标签: typescript enums