首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于字符串的枚举类型脚本2.4+的转换

基于字符串的枚举类型脚本2.4+的转换
EN

Stack Overflow用户
提问于 2017-08-31 01:52:48
回答 1查看 340关注 0票数 2

我有一个基于字符串的枚举(在TypeScript 2.4+中受支持)。将字符串转换为相应枚举值的最佳方法是什么(如果存在?)。如果它不存在,默认设置为一个值也可以。

代码语言:javascript
复制
export enum Theory {
  RLJ = 'r + l = j',
  WinterIsComing = 'winter is coming',
  TyrionIsAarysSon = 'i buy it',
  YoungGriffIsReal = 'doubtfull'
}

我从以下几点开始,当然不会起作用。

代码语言:javascript
复制
function getTheory(theoryString: string): Theory {
  let theory: Theory = Theory.RLJ;
  if (theoryString in Theory) {
    theory = theoryString as Theory;
  }

  return theory;
}

一种可能可行的方法是创建枚举值到名称的映射,并执行反向查找,但似乎不应该这样做(或者TypeScript有更好的内置方法)。

EN

回答 1

Stack Overflow用户

发布于 2017-08-31 01:55:46

我认为你不能实现你想要的。我能给你的最好信息是这样的:

代码语言:javascript
复制
function isTheSameTheory(theoryString: string, t: Theory) {
  return theoryString === t;
}

或者这样(这是不安全的):

代码语言:javascript
复制
function toTheory(theoryString: string) {
  return theoryString as Theory;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45966849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档