1. ホーム
  2. typescript

[解決済み] TypeScriptで文字列をenumに変換するには?

2022-03-19 11:01:42

質問

TypeScriptで以下のenumを定義しました。

enum Color{
    Red, Green
}

さて、私の関数では、色を文字列として受け取っています。次のようなコードを試してみました。

var green= "Green";
var color : Color = <Color>green; // Error: can't convert string to enum

その値をenumに変換するにはどうしたらいいですか?

どのように解決するのですか?

TypeScript 0.9の列挙型は、文字列+数値ベースです。単純な変換であれば、型アサーションは必要ないはずです。

enum Color{
    Red, Green
}

// To String
 var green: string = Color[Color.Green];

// To Enum / number
var color : Color = Color[green];

オンラインで試す

これと他のEnumパターンについては、私のOSSブックにドキュメントがあります。 https://basarat.gitbook.io/typescript/type-system/enums