#DDD #TypeScript
[[TypeScriptで多機能なEnumを実装する方法]](名前付きの`static`定数を定義しているのがポイント)を使うべきタイミングについて。
基本的には**Enum like classの抽象実装では表現できない場合**に限ると思っている。
以下のように列挙子を指定して条件分岐が必須の場合。
```ts
if color === Color.RED {
// ...
}
```
switch文を使う場合も考慮漏れを防ぐために必要。
```ts
switch (color) {
case Color.RED:
// ...
default:
}
```