创建一个我可以枚举的类型

时间:2017-09-05 15:25:08

标签: typescript

是否可以对类型进行枚举。 例如,如果我声明:

type myType = 'value1' | 'value2';

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

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

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

1 个答案:

答案 0 :(得分: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