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

Gia*_*uca 5 enums initialization typescript

游乐场中的打字稿示例在这里在这里。

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

这是不允许的吗?为什么后面的成员没有设置为前面的枚举成员加一?

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

const firstValue: number = 100;
enum Animal {
    Lion = firstValue,
    Tiger,  // gives error
    Horse,  // gives error
    Fish    // gives error
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*ser 5

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

你可以用以下方法解决这个问题

enum FirstValue {
    firstValue = 100
}
Run Code Online (Sandbox Code Playgroud)

并使用FirstValue.firstValue代替firstValue.