Menu
Coddy logo textTech

異種混合列挙型 (Heterogeneous Enums)

CoddyのJavaScriptジャーニー「Introduction To TypeScript」セクションの一部 — レッスン 55/73。

TypeScriptは、同じ宣言内に文字列と数値の両方のメンバーが混在するヘテロジニアス(heterogeneous)列挙型もサポートしています。

ヘテロジニアス列挙型を作成する方法は次のとおりです。

enum MixedEnum {
  No = 0,
  Yes = "YES",
  Maybe = 1
}

この例では、NoMaybe は数値メンバーであり、一方 Yes は文字列メンバーです。TypeScript はこの柔軟性を許容していますが、異種混合の列挙型(heterogeneous enums)が実際に使用されることは稀である点に注意することが重要です。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

challenge icon

チャレンジ

簡単

文字列と数値が混在する、ResponseCode という名前のヘテロジニアス列挙型(heterogeneous enum)を作成してください。

  • Success200 で初期化
  • Error"ERROR" で初期化
  • NotFound404 で初期化
  • Timeout"TIMEOUT" で初期化

1つのパラメータを受け取る handleResponse という名前の関数を作成してください。

  • ResponseCode 型の code

この関数は以下の処理を行う必要があります。

  • レスポンスコードを確認し、その値に基づいて異なるメッセージを出力します
  • コードが ResponseCode.Success の場合、"Request successful" を出力します
  • コードが ResponseCode.Error の場合、"General error occurred" を出力します
  • コードが ResponseCode.NotFound の場合、"Resource not found" を出力します
  • コードが ResponseCode.Timeout の場合、"Request timed out" を出力します
  • 戻り値の型を void にします

列挙型の値をデモンストレーションするために、4つの変数を作成してください。

  • successCodeResponseCode 型とし、ResponseCode.Success を代入します
  • errorCodeResponseCode 型とし、ResponseCode.Error を代入します
  • notFoundCodeResponseCode 型とし、ResponseCode.NotFound を代入します
  • timeoutCodeResponseCode 型とし、ResponseCode.Timeout を代入します

以下の出力を表示してください。

  • successCode の値を出力します
  • errorCode の値を出力します
  • notFoundCode の値を出力します
  • timeoutCode の値を出力します
  • ResponseCode.Success を引数にして handleResponse を呼び出します
  • errorCode を引数にして handleResponse を呼び出します
  • 数値の 404 を引数にして handleResponse を呼び出します

チートシート

TypeScriptは、同じ宣言内に文字列メンバーと数値メンバーの両方を混在させることができる、ヘテロジニアス(混在型)列挙型をサポートしています:

enum MixedEnum {
  No = 0,
  Yes = "YES",
  Maybe = 1
}

ヘテロジニアス列挙型では、数値と文字列の値を混在させることができます。TypeScriptはこの柔軟性を許容していますが、実際の開発でヘテロジニアス列挙型が使用されることは稀です。

自分で試してみよう

// TODO: ここにコードを書いてください

// ResponseCode列挙型を作成します


// handleResponse関数を作成します


// デモンストレーション用の変数を作成します


// 必要な出力を表示します
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Introduction To TypeScriptのすべてのレッスン