文字列列挙型:TypeScriptでコードの品質を向上させる
TypeScriptで文字列を列挙型に変換する方法
enum 型を使用する
最も簡単な方法は、enum
型を使用する方法です。
enum MyEnum {
"red" = "赤",
"green" = "緑",
"blue" = "青",
}
const color: MyEnum = "red";
console.log(color); // "赤"
この例では、MyEnum
という名前の列挙型を定義し、red
、green
、blue
という3つの文字列リテラルをメンバーとして追加しています。
const color: MyEnum = "red"
という行では、color
という名前の変数を MyEnum
型として宣言し、"red"
という文字列リテラルを初期値として割り当てています。
console.log(color)
という行では、color
変数の値を出力しています。
const
型を使用する方法もあります。
const MyEnum = {
red: "赤",
green: "緑",
blue: "青",
};
const color: MyEnum = "red";
console.log(color); // "赤"
オブジェクトリテラルを使用する方法もあります。
const MyEnum = {
red: "赤",
green: "緑",
blue: "青",
};
const color: typeof MyEnum["red"] = "red";
console.log(color); // "赤"
TypeScriptで文字列を列挙型に変換するにはいくつかの方法があります。
- シンプルなケースでは、
enum
型を使用するのが最も簡単です。 - より柔軟な方法が必要な場合は、
const
型またはオブジェクトリテラルを使用することができます。
enum 型を使用する
enum MyEnum {
"red" = "赤",
"green" = "緑",
"blue" = "青",
}
const color: MyEnum = "red";
console.log(color); // "赤"
const 型を使用する
const MyEnum = {
red: "赤",
green: "緑",
blue: "青",
};
const color: MyEnum = "red";
console.log(color); // "赤"
オブジェクトリテラルを使用する
const MyEnum = {
red: "赤",
green: "緑",
blue: "青",
};
const color: typeof MyEnum["red"] = "red";
console.log(color); // "赤"
文字列リテラルから列挙型のメンバーを取得する
enum MyEnum {
"red" = "赤",
"green" = "緑",
"blue" = "青",
}
const color: MyEnum = "red";
const colorName: string = MyEnum[color];
console.log(colorName); // "赤"
列挙型のメンバーを文字列に変換する
enum MyEnum {
"red" = "赤",
"green" = "緑",
"blue" = "青",
}
const color: MyEnum = "red";
const colorName: string = color.toString();
console.log(colorName); // "red"
TypeScriptで文字列を列挙型に変換するその他の方法
union 型を使用する
const MyEnum: string = "red" | "green" | "blue";
const color: MyEnum = "red";
console.log(color); // "赤"
as
演算子を使用する方法は、文字列を変数に割り当ててから、その変数を列挙型に変換したい場合に便利です。
const colorString: string = "red";
const color: MyEnum = colorString as MyEnum;
console.log(color); // "赤"
この例では、colorString
という名前の変数を string
型として宣言し、"red"
という文字列リテラルを初期値として割り当てています。
const color: MyEnum = colorString as MyEnum
という行では、color
という名前の変数を MyEnum
型として宣言し、colorString
変数を as
演算子を使用して MyEnum
型に変換して割り当てています。
typeof
演算子を使用する方法は、既存の列挙型のメンバーから新しい列挙型を生成したい場合に便利です。
enum MyEnum {
"red" = "赤",
"green" = "緑",
"blue" = "青",
}
const NewEnum: typeof MyEnum["red"] = "red";
console.log(NewEnum); // "赤"
この例では、NewEnum
という名前の新しい列挙型を定義し、MyEnum
型の red
プロパティの型と同じ型にしています。
- 複数の文字列リテラルを受け入れる列挙型を定義したい場合は、
union
型を使用することができます。 - 文字列を変数に割り当ててから、その変数を列挙型に変換したい場合は、
as
演算子を使用することができます。 - 既存の列挙型のメンバーから新しい列挙型を生成したい場合は、
typeof
演算子を使用することができます。
typescript