首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“const”枚举声明中的TS2474 (TS)成员初始化程序必须是常量表达式

“const”枚举声明中的TS2474 (TS)成员初始化程序必须是常量表达式
EN

Stack Overflow用户
提问于 2018-06-07 14:18:01
回答 1查看 933关注 0票数 1

错误码:

代码语言:javascript
运行
复制
export declare const enum JSDocTagName {
    Desc = "desc",
    Id = "id",
    Meaning = "meaning",
}

在.net框架下使用角6

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-07 15:12:56

常量枚举在传输溢出过程中被擦除,因此它们在运行时应用程序中没有留下任何代码。在整个应用程序中,所有的用途都被替换为值。因此,declare关键字是多余的:

代码语言:javascript
运行
复制
export const enum JSDocTagName {
    Desc = "desc",
    Id = "id",
    Meaning = "meaning"
}

与普通枚举不同,常量枚举不能具有特定类型的计算值,例如,这在普通枚举中是允许的,但不允许具有常量枚举:

代码语言:javascript
运行
复制
const x = 1;

enum A {
    Name = x,
    Age = x + 1
}

您的错误通常是因为您试图在常量枚举上执行类似的操作。

即使在常数枚举中也可以使用一些计算值--只要结果是可预测的,例如:

代码语言:javascript
运行
复制
const enum A {
    Name = 1 << 0,
    Age = 1 << 1,
    Date = 1 << 2
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50743575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档