Menu
Coddy logo textTech

文字列列挙型の使い方

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

文字列 Enum は、型の安全性を維持しながら、明確で読み取り可能な値を提供するため、関数の引数として特にうまく機能します。

関数内で文字列の列挙型(string enum)を使用する方法を以下に示します:

function move(direction: Direction): void {
  console.log(`Moving ${direction.toLowerCase()}...`);
}

この関数を呼び出す際、TypeScriptは事前に定義された列挙型(enum)の値のみを受け入れます。move(Direction.Up)を使用して呼び出すことができ、その結果"Moving up..."が出力されます。コードエディタは利用可能な列挙型メンバーの補完機能を提供し、TypeScriptは無効な方向の値を渡そうとする試みを検出します。

challenge icon

チャレンジ

簡単

前のチャレンジから提供された以下の内容があります:

  • UpDownLeftRight のメンバを持つ Direction 文字列列挙型(enum)
  • 変数:upDirectiondownDirectionleftDirection、および rightDirection

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

  • Direction 型の direction

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

  • "Moving [direction]..." という形式のメッセージを出力します。ここで [direction] は列挙型の文字列値を小文字にしたものです。
  • 戻り値の型を void にします。

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

  • Direction 型の direction

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

  • 方向に基づいて動きを説明する文字列を返します:
  • Direction.Up の場合:"Going upward" を返す
  • Direction.Down の場合:"Going downward" を返す
  • Direction.Left の場合:"Turning left" を返す
  • Direction.Right の場合:"Turning right" を返す
  • 明示的な戻り値の型を string にします。

Direction 型の playerDirection という名前の変数を作成し、Direction.Up を代入してください。

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

  • Direction.Up を引数にして move を呼び出す
  • leftDirection を引数にして move を呼び出す
  • playerDirection を引数にして move を呼び出す
  • Direction.Down を引数にして getMovementDescription を呼び出した結果を出力する
  • rightDirection を引数にして getMovementDescription を呼び出した結果を出力する
  • Direction.Right を引数にして move を呼び出す

自分で試してみよう

// 前回のチャレンジより - Direction 列挙型と変数
enum Direction {
    Up = "Up",
    Down = "Down",
    Left = "Left",
    Right = "Right"
}

const upDirection = Direction.Up;
const downDirection = Direction.Down;
const leftDirection = Direction.Left;
const rightDirection = Direction.Right;

// TODO: ここにコードを記述してください
// Direction パラメータを受け取り、"Moving [direction]..." と出力する move 関数を作成します
// 移動の説明を返す getMovementDescription 関数を作成します
// playerDirection 変数を作成します
// 関数を呼び出し、必要な出力を表示します
quiz icon腕試し

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

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

自分で練習してみよう: JavaScriptオンラインコンパイラ