3
A
答えて
5
活字体列挙:
enum MyEnum {
First, Second
}
は、JavaScriptオブジェクトにtranspiledさ:
var MyEnum;
(function (MyEnum) {
MyEnum[MyEnum["First"] = 0] = "First";
MyEnum[MyEnum["Second"] = 1] = "Second";
})(MyEnum || (MyEnum = {}));
あなたはwindow["EnumName"]
からenum
インスタンスを取得することができます。
const MyEnumInstance = window["MyEnum"];
次あなたが列挙型のメンバの値を取得することができます:
const enumMemberValues: number[] = Object.keys(MyEnumInstance)
.map((k: any) => MyEnumInstance[k])
.filter((v: any) => typeof v === 'number').map(Number);
そして、列挙型のメンバ名:
const enumMemberNames: string[] = Object.keys(MyEnumInstance)
.map((k: any) => MyEnumInstance[k])
.filter((v: any) => typeof v === 'string');
も参照してくださいHow to programmatically enumerate an enum type in Typescript 0.9.5?
+0
ウィンドウ[enumname]が動作しませんでした。おそらく名前空間を使用しているからです。しかし、 "eval(ennamame)"が機能しました。 –
2
他の回答を提供していることwindow
アプローチに代わるものとしては、次の操作を行うことができます:
enum SomeEnum { A, B }
let enumValues:Array<string>= [];
for(let value in SomeEnum) {
if(typeof SomeEnum[value] === 'number') {
enumValues.push(value);
}
}
enumValues.forEach(v=> console.log(v))
//A
//B
関連する問題
- 1. 取得列挙型文字列
- 2. 列挙型の列挙型名を取得します。
- 3. 名前の列挙型
- 4. 列挙型:列挙型の名前ではなく、そのint型の値を文字列として取得する必要があります
- 5. 列挙型の列挙型の列挙型へのアクセス
- 6. DBの列挙型または列挙型の列挙型
- 7. 列挙型の中の列挙型
- 8. 列挙型の列挙型の作成
- 9. 列挙型の値を別々の列挙型で再利用
- 10. 列挙型内の列挙型
- 11. 列挙型の値列PHP
- 12. TypeScript文字列ベースの列挙型コンパイラエラー
- 13. 文字列と列挙型の説明
- 14. jqGrid表示列挙型の文字列
- 15. 列挙型の文字列表現、NSLog
- 16. 列挙型と文字列の一致
- 17. JSON文字列を列挙型にデシリアライズ
- 18. 文字列または列挙型
- 19. 列挙型インスタンスの名前を取得します
- 20. 文字列の値と列挙型の文字列値の比較
- 21. 列挙型の
- 22. 列挙型宣言でint型の値
- 23. 列挙型を知らなくても列挙型の基礎値を文字列に変換する
- 24. 列挙型データ型
- 25. 多型列挙型
- 26. WPFデータ列挙型の列挙
- 27. のPostgreSQL:これは、列挙型の定義で列挙型
- 28. T-SQL列挙型の数値または文字列
- 29. 列挙型hasMoreElements()
- 30. 列挙型は
あなたは反射を使用することができました、この投稿のようなものhttp://stackoverflow.com/questions/15338610/dynamically-loading-a-typescript-class-re形容詞のためのflection-for-typescript。とにかく、それが正しい方法か、それとも "普通の"方法でそれにアクセスできるかを最初に考えてみましょう。 – iberbeu