TypeScript で enum を作る方法
TypeScriptでenumのような型を作成する方法
TypeScriptでは、enumというキーワードを使用して、特定の値のセットを定義することができます。これは、定数や列挙型のような役割を果たします。
基本的なenumの定義
enum Color {
Red,
Green,
Blue
}
この例では、Color
という名前のenumを定義しています。このenumは、Red
、Green
、Blue
という3つの値を持ちます。これらの値は、数値として内部的に表現されます。
enumの値へのアクセス
let myColor: Color = Color.Green;
console.log(myColor); // 出力: 1
myColor
変数にColor.Green
を代入しています。Color.Green
は、内部的には数値の1
として扱われます。
enumの値の逆引き
let colorName: string = Color[1];
console.log(colorName); // 出力: "Green"
数値の1
から対応するenumの値を取得するには、Color[1]
のようにアクセスします。この場合、colorName
変数には"Green"
が格納されます。
enumの値の型チェック
function getColorName(color: Color): string {
return Color[color];
}
let colorName: string = getColorName(Color.Red);
console.log(colorName); // 出力: "Red"
関数getColorName
は、Color
型の値を受け取り、対応する文字列を返します。この関数は、引数の型がColor
であることをチェックし、適切な値を返すことができます。
for (let color in Color) {
if (isNaN(parseInt(color))) {
continue;
}
console.log(color, Color[color]);
}
このコードでは、Color
のすべての値を列挙し、その値と対応する文字列を出力します。
enum Color {
Red,
Green,
Blue
}
let myColor: Color = Color.Green;
console.log(myColor); // 出力: 1
let colorName: string = Color[1];
console.log(colorName); // 出力: "Green"
function getColorName(color: Color): string {
return Color[color];
}
let colorName: string = getColorName(Color.Red);
console.log(colorName); // 出力: "Red"
for (let color in Color) {
if (isNaN(parseInt(color))) {
continue;
}
console.log(color, Color[color]);
}
オブジェクトリテラル
const Color = {
Red: "red",
Green: "green",
Blue: "blue"
};
この方法では、オブジェクトリテラルを使用して、各値に名前を付けます。このオブジェクトは、enumのように使用することができます。
定数
const RED = "red";
const GREEN = "green";
const BLUE = "blue";
この方法では、定数を使用して、各値を定義します。この定数は、enumのように使用することができます。
どちらの方法を選ぶべきか
オブジェクトリテラルと定数のどちらを使用するかは、プロジェクトの要件や好みによって異なります。
- 定数は、シンプルで直接的な方法であり、小さなプロジェクトには適している場合があります。
- オブジェクトリテラルは、値に名前を付けることができるため、より読みやすく理解しやすいコードを作成することができます。
enums typescript