3
A
回答
5
打字稿枚舉:
enum MyEnum {
First, Second
}
被transpiled到JavaScript對象:
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(enumname)」確實有效。 –
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. NSStringEncoding - 枚舉到字符串枚舉
- 2. 獲取枚舉併發送枚舉值
- 3. 字符串枚舉
- 4. 從字符串獲取枚舉字段
- 5. 通過名稱獲取java枚舉
- 6. 枚舉值獲取?
- 7. 獲取枚舉值
- 8. 獲取枚舉值
- 9. 獲取枚舉值通過描述
- 10. 從字符串獲取枚舉類型
- 11. 從類<?獲取枚舉實例擴展枚舉>使用字符串值?
- 12. 字符串轉換爲枚舉的枚舉名
- 13. 從枚舉值中獲取枚舉名稱
- 14. 枚舉值碰撞枚舉名
- 15. 枚舉的返回列表從字符串常量枚舉的名字值
- 16. 獲取枚舉名蟒蛇
- 17. 獲取枚舉名稱
- 18. 枚舉如何返回枚舉對象中枚舉的字符串內容
- 19. 多個枚舉字符串
- 20. 枚舉字符串匹配
- 21. 鑄造字符串枚舉
- 22. NoSql:枚舉vs字符串
- 23. C++ Bitflaged枚舉字符串
- 24. 枚舉爲字符串
- 25. 枚舉到字符串C++
- 26. 字符串到枚舉C++
- 27. 從字符串枚舉
- 28. phalcon獲取枚舉值
- 29. 如何獲取枚舉值?
- 30. 獲取枚舉的INT值[]
你可以使用反射,像這樣的東西http://stackoverflow.com/questions/15338610/dynamically-loading-a-typescript-class-re撓曲換打字稿。無論如何,我首先會想,如果這是正確的方式,或者你可以以「正常」的方式訪問它 – iberbeu