在TypeScript中动态更改枚举的值

时间:2016-05-21 18:55:46

标签: typescript dynamic enums

查看以下代码:

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

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

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分: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 }