【问题标题】:Typescript enum switch does not go into any case打字稿枚举开关不会进入任何情况
【发布时间】:2019-09-04 03:38:53
【问题描述】:

我正在尝试将 switch 与 ENUM 一起使用,但它似乎不起作用

function ConvertToTableName(targetName: PostType): string {
  let tableName = ""
  switch (targetName) {
    case PostType.COMMUNITY:
      tableName = '"COMMUNITY_POST_COMMENT"'
      break
    case PostType.RECOMMEND:
      tableName = '"RECOMMEND_POST_COMMENT"'
      break
  }
  console.log(targetName)
  console.log(tableName)
  return tableName
}

这是我的功能。

console.log(targetName) //PRINTS RECOMMEND
console.log(tableName) //PRINTS NOTHING

即使 targetName 是 PostType 类型并且具有 RECOMMEND 值, targetName 不涉及任何情况,因此 tableName 未设置为任何内容。

这是我的枚举:

export enum PostType {
  RECOMMEND,
  COMMUNITY
}

枚举和函数放在不同的文件中,但正确导入

如何解决,以便 switch 子句按预期工作?

【问题讨论】:

  • 但它可以在我的机器上运行:P typescriptlang.org/play/#code/…
  • 另外,console.log(targetName) 应该打印 1 或 0。要打印您将使用的枚举名称:console.log(PostType[targetName]);
  • 我的论点 targetName 来自 GraphQL 的查询枚举,我想这与 switch 不起作用的原因有关 + console.log(targetName) 打印 RECOMMEND 而不是 0 或 1

标签: typescript enums switch-statement


【解决方案1】:

我的问题是 GraphQL 的 ENUM 类型将 ENUM 作为文字而不是数字发送

【讨论】:

    猜你喜欢
    • 2015-03-01
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    • 2018-09-18
    • 2022-12-12
    • 2020-10-27
    相关资源
    最近更新 更多