この動画はメンバー限定動画です

全ての講座が
月額990円で学び放題

講座の情報を見る

TypeScript入門列挙型(enum)について理解しよう

記事を共有:

  • X
  • Pocket
  • クリップボードにコピー

「型」の中で、かなり特殊な扱いなのが「列挙型」と「タプル型」です。タプル型については後述するため、ここでは列挙型(enum)について簡単に紹介しましょう。

列挙型(enum)

あらかじめ決められた内容だけを受け付けられる「型」で型というよりは、変数のルールを定めるような感じで使われます。例えば、「月」を英語で管理するための変数として、次のような「month」というString型の定数を準備します。

// enum.ts
const month: string = "January";

基本的にはこの定数には、「January」から「December」までしか代入されないはずですが、string型である場合には、別の値が入り込んでしまったり、スペルミスや表記違いが紛れ込んでしまう恐れがあります。

そこで、これを「列挙型」として定義します。

列挙型の場合、まずはその候補を「enum」という記述で宣言します。

enum MonthName {
  January,
  February,
  March,
  April,
  May,
  June,
  July,
  August,
  September,
  October,
  November,
  December
}

すると、この「MonthName」を「型」として利用できるようになります。

const month: MonthName = MonthName.April;
console.log(month); // 3が出力

型を定義すると、代入できる値は先ほど定義したものの中からしか選ぶことはできず、別の値を代入しようとするとエラーが発生します。

const month: MonthName = MonthName.hello;

enum型に任意の値を割り当てよう

enum型で代入された定数、変数は実際には、0から順番に割り振られた数字として扱われます。ただし、次のように数字を割り当てることで、任意の数字に変えることもできます。

enum MonthName {
  January = 1,
  February = 2,
  March = 3,
  April = 4,
...

また、数字ではなく任意の文字列などを割り当てることもできます。

enum MonthName {
  January = "1月",
  February = "2月",
  March = "3月",
...
}

前のレッスン 次のレッスン