动态更改 TypeScript 中枚举的值

Oma*_*nov 3 enums dynamic typescript

看一下下面的代码:

// typescript enum example
enum foo { ONE = 1, TWO = 2, THREE = 3 }
Run Code Online (Sandbox Code Playgroud)

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

Bal*_*des 5

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

const foo = {
  ONE: 1,
  TWO: 2,
  THREE: 3
}
Run Code Online (Sandbox Code Playgroud)


bas*_*rat 5

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

您始终可以使用类型断言

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

(foo as any).ONE = 0;
Run Code Online (Sandbox Code Playgroud)

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

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

enum foo { ONE = 0, TWO = 2, THREE = 3 }
Run Code Online (Sandbox Code Playgroud)