TypeScriptには、JavaScriptにはなかった新しい種類の値がいくつか追加されています。その1つが「
列挙型」です。
プログラミングにおいては、複数の項目の中から1つを選ぶ、ということはよくあります。ラジオボタンのようなインターフェイスの値を処理するときは必要になりますね。
通常、JavaScriptでは、テキストや整数などの値を割り当てて利用するのが一般的でした。が、こうした場合には、常に「想定していない値が設定されたらどうするか」ということを考えないといけません。
こんな場合に用いられるのが「
列挙型」と呼ばれる新しい種類の値です。列挙型は、いくつかの値をグループにして、それらの値だけしか利用できないようなタイプを作るためのものです。これは以下のように利用します。
enum タイプ名 { 値1, 値2, ……};
{}内に、値をカンマで区切って記述します。これで、定義したタイプがそのまま変数などで利用できるようになります。例えば、色の値を扱う
Colorタイプを定義してみましょう。
enum Color {Red, Green, Blue};
これで、
Red, Green, Blueという3つの値を持つ列挙型
Colorが定義されます。注意したいのは、{}内に記述するのはテキストではない、という点です。
{"Red", "Green", "Blue"}とは書きません。
Red, Blue, Greenはテキストの値ではなく、
Colorの値なのです。
変数を利用する際、この
Colorをタイプに指定すればいいのです。値は、「
タイプ名.値」というように、タイプ名とその中の値をドットでつなげて記述します。例えば、Color.Redという具合です。
let c:Color = Color.Red;
こんな具合にすれば、変数cにColorの値を設定できます。
Color.○○という形で記述しますから、Color内に用意されていない値は使えないことが感覚的にわかるでしょう。