从局部变量设置枚举对象的初始成员值时出错

时间:2017-06-22 20:35:09

标签: typescript enums initialization

playground here中的打字稿示例。

我正在尝试设置枚举对象的初始成员值,并且该初始值来自const(数字)。 在这种情况下,以下所有值都会产生TS错误:“Enum成员必须具有初始化程序。”

这是不允许的? 为什么以下成员未设置为前一个枚举成员加一个?

为了简洁,这里是代码,但你可以在上面的游乐场链接中看到它:

const firstValue: number = 100;
enum Animal {
    Lion = firstValue,
    Tiger,  // gives error
    Horse,  // gives error
    Fish    // gives error
}

1 个答案:

答案 0 :(得分:3)

目前确实不允许这样做 - 当使用初始化程序跟随另一个枚举成员时,枚举成员仅在静态知道计算值时自动递增。现在,它只包括数值文字和其他值已静态知道的枚举成员,但分析当前不包含const声明。

你可以用

解决这个问题
enum FirstValue {
    firstValue = 100
}

并使用FirstValue.firstValue代替firstValue