【问题标题】:How can I convert a string to enum sum type?如何将字符串转换为枚举总和类型?
【发布时间】:2020-09-14 22:52:13
【问题描述】:

这个问题可能看起来和the one about converting strings to enums类似,但我的情况要复杂一些。我有两个不同的枚举和另一个总和类型:

enum InteractiveStep {
    Pick = 'PICK',
    Ban = 'BAN'
}

enum AutoStep {
    RandomPick = 'RANDOM_PICK',
    LastPick = 'LAST_PICK'
}

type ActionStep = InteractiveStep | AutoStep

如何检查ActionStep类型中是否包含任意字符串,并安全转换?

【问题讨论】:

    标签: typescript enums


    【解决方案1】:

    使用this discussion,我想出了这个:

    enum InteractiveStep {
        Pick = 'PICK',
        Ban = 'BAN'
    }
    
    enum AutoStep {
        RandomPick = 'RANDOM_PICK',
        LastPick = 'LAST_PICK'
    }
    
    type ActionStep = InteractiveStep | AutoStep
    const ActionStep = {...InteractiveStep, ...AutoStep}
    
    const inputString: string = 'RANDOM_PICK'
    
    const inputStep: ActionStep = ActionStep[inputString as keyof typeof ActionStep];
    

    【讨论】:

      猜你喜欢
      • 2018-02-14
      • 2021-07-21
      • 2011-07-02
      • 1970-01-01
      • 1970-01-01
      • 2016-07-30
      • 2013-01-23
      • 1970-01-01
      • 2010-12-13
      相关资源
      最近更新 更多