【发布时间】:2018-07-07 02:27:11
【问题描述】:
我正在玩一些 Typescript。
假设我有一个像这样的object
let colors = {
RED: "r",
GREEN: "g",
BLUE: "b"
}
现在我想把它转换成enum 类型
enum Colors = {
RED = "r",
GREEN = "g",
BLUE = "b"
}
更新:
我想要为 colors 对象生成typings,这样
如果我向颜色对象添加另一个key,它应该包含在typings 中。
如果我这样做了
colors['YELLOW'] = "y"
那么生成的typings应该是
declare enum colors {
RED = "r",
GREEN = "g",
BLUE = "b",
YELLOW = "y"
}
相反,生成的类型是
declare const colors {
[x: string]: string
}
我怎样才能做到这一点?
【问题讨论】:
-
你有什么用途?不要认为您可以基于对象字面量创建实际的枚举类型,但您可以创建一个非常模仿其行为的对象。
-
你可以做相反的事情 - 将
enum转换为对象 -
@TitianCernicova-Dragomir 我已经用我真正想要实现的目标更新了问题
-
我期望的是一个数组,而不是一个对象。您的问题标题与正文完全无关。这将是一个数组:
["red", "blue", "green"],我希望它被转换成一个enum Color { red, blue, green }
标签: arrays typescript object types enums