TypeScriptのenum

2020/07/18

概要

定数を定義するのに便利な TypeScript の enum の基本を紹介します!

enum の定義・使い方

// enumを定義
enum drinkPrice {
  SMALL = 150,
  MEDIUM = 250,
  LARGE = 350,
}
const coffee = {
  price: 300,
  size: drinkPrice.MEDIUM,
};

// 出力
console.log(coffee.size); // 350

宣言した値の型

drinkPrice.MEDIUM は enum 型となります。

image2.png

再代入

readonly プロパティのため、再代入できません。

image1.png

初期値を省略した場合

// 初期化していない場合、indexの0始まりになる
enum drinkSize {
  SMALL,
  MEDIUM,
  LARGE,
}

const coffee = {
  price: 300,
  size: drinkSize.MEDIUM,
};

// 出力
console.log(coffee.size); // 2

定義された数値を基準に、インクリメントされます。

そのため、MEDIUM,LARGE は 151,152 となります。

enum drinkSize {
  SMALL = 150
  MEDIUM,
  LARGE,
}

最後に

定数を定義するのに enum は便利かと思いますが、他の記事で enum を使用しないことを薦めているものがありました。

Tree shaking ができなかったり、使い方によっては型安全ではないようです。

良いところ、悪いところ両方目を通して enum を使用すべきか検討してください!

enum を薦めていない記事