2017-06-22 25 views
0

playground here中的Typescript示例出现错误。从本地变量设置枚举对象的初始成员值时出错

我想设置一个枚举对象的初始成员值,并且该初始值来自const(数字)。 在这种情况下,以下所有值都会导致TS错误:“枚举成员必须具有初始值设定项。”

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

为简单起见,这里的代码,但你可以看到它在上面的操场链接:

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

回答

0

这的确是不允许的时刻 - 在与一个初始化,枚举成员另一个枚举成员时,只当计算值静态已知时自动递增。现在,只包含数值和其他枚举成员的值是静态已知的,但分析当前不包括const声明。

你可以绕过这与

enum FirstValue { 
    firstValue = 100 
} 

,并使用FirstValue.firstValue代替firstValue

+0

谢谢丹尼尔。你的建议工作正常。 – Gianluca

+0

其实我可能找到了另一个限制。我需要枚举FirstValue在外部文件中(因为它需要从多个文件中使用),当我从外部文件导出它时,然后将其导入到Animal枚举所在的文件中,那么我可以不再使用它,因为它给了我这个错误:'[ts] Type'FirstValue'不能分配给类型'Animal'' – Gianluca