TypeScriptのenumは、特定の値の集合を表現するための方法の一つです。
- 基本的なenum
最もシンプルな形のenumを以下に示します:
enum Colors {
Red,
Green,
Blue
}
上記のColorsというenumを定義することで、Colors.RedやColors.Greenのようにしてその値にアクセスすることができます。また、enumの値はデフォルトで0から始まり、1ずつ増加していきます。したがって、Colors.Redの値は0、Colors.Greenの値は1、となります。
- 初期値や値の変更
enumの要素には、任意の数値や文字列を割り当てることができます。
enum Colors {
Red = 3,
Green = 5,
Blue = 7
}
この場合、Colors.Redの値は3になります。
文字列を使用することもできます:
enum Greetings {
Hello = "こんにちは",
Goodbye = "さようなら"
}
- Computed value
enumの要素の値は、計算される値を持つことができます。しかし、計算される値を持つenumの要素の後ろに来るenumの要素には明示的な初期値を提供する必要があります。
enum Values {
A,
B = A * 2,
C // この行はエラーとなる
}
- 逆マッピング
TypeScriptのenumは逆マッピングの機能を持っています。数値のenumであれば、その値から名前を取得することができます。
enum Colors {
Red,
Green,
Blue
}
let colorName: string = Colors[0]; // "Red"
ただし、文字列のenumや計算される値を持つenumではこの機能は利用できません。
- const enum
const enumは、enumの値がコンパイル時にインライン展開されるenumです。これにより、出力されるJavaScriptコードが短くなり、パフォーマンスが向上する場合があります。
const enum Directions {
Up,
Down,
Left,
Right
}
let dir: Directions = Directions.Up; // コンパイル時に "0" として展開される
以上がTypeScriptのenumの基本的な使い方や特性です。どんな状況でenumを使用するかは、具体的なケースやプロジェクトの要件によって異なりますが、限定的な値の集合を扱う場面で非常に役立つことが多いです。