2017-09-05 64 views
1

枚举类型是否可能? 例如,如果我声明:创建一个我可以列举的类型

type myType = 'value1' | 'value2'; 

然后我想用myType所有值初始化myTypeArray

let myTypeArray: myType[] = // enumerate on the values authorized by `myType`. 

是否有一个带打字机的结构允许?

回答

2

你不能用类型别名来做到这一点,因为它们没有被编译到javascript输出中,因此在运行时不可用。

你可以做string enums类似的事情:

enum MyType { 
    Value1 = "value1", 
    Value2 = "value2" 
}; 

let myTypeKeys: string[] = Object.keys(MyType); 
console.log(myTypeKeys); // ["Value1", "Value2"] 

let myTypeValues: string[] = Object.keys(MyType).map(key => MyType[key]); 
console.log(myTypeValues); // ["value1", "value2"] 

code in playground

相关问题