2016-05-21 9 views
1

で列挙型の値を変更するには、次のコードを見てください:が動的に活字体

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

は、それが実行時に0にONEの値を変更することは可能ですか?はいの場合、どうですか?

+0

あなたのユースケースを説明した場合には有用であろう。 'enum'は通常不特定であるため特に選択されます。つまり、アプリケーションを予測不能にするために値を変更したくないということです。 – Fenton

答えて

3

私はtypescriptコンパイラがこれを許可するとは思わない。しかし、なぜenumを変更したいですか?全体のポイントは、名前付きの定数値です。

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

それは実行時に0にONEの値を変更することは可能です:あなたがそれらを変更したい場合は、その理由だけではなく、このようなものを使うのか?はいの場合、どうですか?

あなたは常に型アサーション使用することができます。

// 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 }