2017-09-05 38 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

相關問題