playground here中的打字稿示例。
我正在尝试设置枚举对象的初始成员值,并且该初始值来自const(数字)。 在这种情况下,以下所有值都会产生TS错误:“Enum成员必须具有初始化程序。”
这是不允许的? 为什么以下成员未设置为前一个枚举成员加一个?
为了简洁,这里是代码,但你可以在上面的游乐场链接中看到它:
const firstValue: number = 100;
enum Animal {
Lion = firstValue,
Tiger, // gives error
Horse, // gives error
Fish // gives error
}
答案 0 :(得分:3)
目前确实不允许这样做 - 当使用初始化程序跟随另一个枚举成员时,枚举成员仅在静态知道计算值时自动递增。现在,它只包括数值文字和其他值已静态知道的枚举成员,但分析当前不包含const
声明。
你可以用
解决这个问题enum FirstValue {
firstValue = 100
}
并使用FirstValue.firstValue
代替firstValue
。