TypeScript で文字列を列挙型に変換するにはどうすればいいですか? 質問する

TypeScript で文字列を列挙型に変換するにはどうすればいいですか? 質問する

TypeScript で次の列挙型を定義しました。

enum Color{
    Red, Green
}

今、私の関数では色を文字列として受け取ります。次のコードを試しました:

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

その値を列挙型に変換するにはどうすればいいでしょうか?

ベストアンサー1

TypeScript 0.9 の列挙型は文字列 + 数値ベースです。単純な変換には型アサーションは必要ありません。

enum Color{
    Red, Green
}

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

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

オンラインで試す

私の OSS ブックには、これと他の Enum パターンに関するドキュメントがあります。タイプシステム

typescript フラグを使用している場合は、必ずこれを使用してください--noImplicitAny:

var color : Color = Color[green as keyof typeof Color];

おすすめ記事