从本地变量设置枚举对象的初始成员值时出错
问题描述:
playground here中的Typescript示例出现错误。从本地变量设置枚举对象的初始成员值时出错
我想设置一个枚举对象的初始成员值,并且该初始值来自const(数字)。 在这种情况下,以下所有值都会导致TS错误:“枚举成员必须具有初始值设定项。”
这不允许吗? 为什么以下成员未设置为前一个枚举成员加一个?
为简单起见,这里的代码,但你可以看到它在上面的操场链接:
const firstValue: number = 100;
enum Animal {
Lion = firstValue,
Tiger, // gives error
Horse, // gives error
Fish // gives error
}
答
这的确是不允许的时刻 - 在与一个初始化,枚举成员另一个枚举成员时,只当计算值静态已知时自动递增。现在,只包含数值和其他枚举成员的值是静态已知的,但分析当前不包括const
声明。
你可以绕过这与
enum FirstValue {
firstValue = 100
}
,并使用FirstValue.firstValue
代替firstValue
。
谢谢丹尼尔。你的建议工作正常。 – Gianluca
其实我可能找到了另一个限制。我需要枚举FirstValue在外部文件中(因为它需要从多个文件中使用),当我从外部文件导出它时,然后将其导入到Animal枚举所在的文件中,那么我可以不再使用它,因为它给了我这个错误:'[ts] Type'FirstValue'不能分配给类型'Animal'' – Gianluca