TS2474(TS)在'const'enum声明中,成员初始值设定项必须是常量表达式

时间:2018-06-07 14:18:02

标签: .net angular typescript

错误代码:

export declare const enum JSDocTagName {
    Desc = "desc",
    Id = "id",
    Meaning = "meaning",
}

将Angular 6与.net框架一起使用

1 个答案:

答案 0 :(得分:1)

在转换过程中会删除常量枚举,因此它们在运行时应用程序中不会留下任何代码。所有用途都代替了整个应用程序的价值。因此,您的declare关键字是多余的:

export const enum JSDocTagName {
    Desc = "desc",
    Id = "id",
    Meaning = "meaning"
}

与常规枚举不同,常量枚举不能具有某些类型的计算值,例如,这在常规枚举中是允许的,但不是常量枚举:

const x = 1;

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

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

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

const enum A {
    Name = 1 << 0,
    Age = 1 << 1,
    Date = 1 << 2
}