【问题标题】:Dynamically change the value of enum in TypeScript在 TypeScript 中动态改变 enum 的值
【发布时间】:2016-05-21 18:55:46
【问题描述】:

看看下面的代码:

// typescript enum example
enum foo { ONE = 1, TWO = 2, THREE = 3 }

是否可以在运行时将 ONE 的值更改为 0?如果是,怎么做?

【问题讨论】:

  • 如果您解释了您的用例,将会很有用。通常会专门选择 enum,因为它是不可变的 - 即您永远不会希望值更改,因为它会使您的应用程序不可预测。

标签: typescript dynamic enums


【解决方案1】:

我认为打字稿编译器不会允许这样做。但是为什么要更改enum?重点是命名常量值。如果你想让他们改变,为什么不直接使用这样的东西:

const foo = {
  ONE: 1,
  TWO: 2,
  THREE: 3
}

【讨论】:

    【解决方案2】:

    是否可以在运行时将 ONE 的值更改为 0?如果是,怎么做?

    你总是可以使用类型断言

    // typescript enum example
    enum foo { ONE = 1, TWO = 2, THREE = 3 }
    
    (foo as any).ONE = 0;
    

    更多:https://basarat.gitbooks.io/typescript/content/docs/types/type-assertion.html 但我不推荐。

    为什么不首先写以下内容?:

    enum foo { ONE = 0, TWO = 2, THREE = 3 }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多