TypeScriptにおける列挙型としての列挙
各列挙は独自のデータ型を作成します。
例として、現在の季節を格納する変数に
型 Season を割り当ててみましょう:
let current: Season;
この変数に季節の番号を代入します:
let current: Season = Season.Winter;
console.log(current); // 0
季節の番号を手動で指定することもできます:
let current: Season = 3;
しかし、例えば文字列など別の型のデータを 代入しようとすると、エラーが発生します:
let current: Season = 'str'; // エラーが発生します
残念ながら、値の範囲は追跡されないため、 列挙に存在しない番号を代入することができてしまいます:
let current: Season = 7; // エラーは発生しません
typeof 演算子でチェックすると、
この変数は数値型を返します:
let current: Season = 3;
console.log(typeof current); // "number"
まとめると、この型のチェックはそれほど厳密ではなく、 その価値は疑わしいと言えます。