列挙型 (enum) の基本
TypeScript で列挙型を定義するには、enum
キーワードを使用します。
デフォルトでは、各要素の値として先頭から順番に 0、1、2 という連番の 整数値 が内部的に割り当てられます(C 言語や Java と同様です)。
この値は任意の数値に変更することができます。
次の例は、ビットフラグとして使用することを想定した enum の定義例です。
各値が 2 のべき乗の値になっていることに注意してください。
enum 値をインライン展開する (Constant enumeration)
enum 定義を行うときに const
キーワードを付加すると、その enum 値を使用した場所に値がハードコードされる形で展開されます(JavaScript のコードに変換するときに、0 や 1 といった値をインライン展開する)。
上記の TypeScript が JavaScript にトランスパイルされると、enum 値の参照箇所はそれぞれ下記のように出力されます。
ConstEnum.A
という部分は、0 という値でハードコードされているのが分かります。
関連記事