文字列列挙型の使い方
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は無効な方向の値を渡そうとする試みを検出します。
チャレンジ
簡単前のチャレンジから提供された以下の内容があります:
Up、Down、Left、Rightのメンバを持つDirection文字列列挙型(enum)- 変数:
upDirection、downDirection、leftDirection、および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 変数を作成します
// 関数を呼び出し、必要な出力を表示しますこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
Introduction To TypeScriptのすべてのレッスン
2基本の型
基本の型: str, num, boolean'any' 型: 脱出ハッチ'unknown' 型'null' と 'undef' の扱い型推論の実践明示的な型アノテーションまとめ:基本の型の演習5型:エイリアス、ユニオン型、インターセクション型
プリミティブ型の型エイリアスユニオン型 ('|')ユニオン型の扱い方リテラル型インターセクション型 ('&')型エイリアスの組み合わせまとめ:高度な型の組み合わせ自分で練習してみよう: JavaScriptオンラインコンパイラ