如何使这些枚举成为常量

时间:2015-03-08 15:44:39

标签: typescript1.4

我现在的枚举效果很好。

export enum LEADER {
    /** tab leader is nothing. */
    NONE = ' '.charCodeAt(0),
    /** tab leader is dots. */
    DOT = '.'.charCodeAt(0),
    /** tab leader is dots. */
    MIDDLE_DOT = '\''.charCodeAt(0),
    /** tab leader is hyphens. */
    HYPHEN = '-'.charCodeAt(0),
    /** tab leader is underscores. */
    UNDERSCORE = '_'.charCodeAt(0),
}

但我想让它们成为一个常量。有没有办法在没有查看我使用的每个字符值的十六进制代码的情况下执行此操作?

谢谢 - 戴夫

1 个答案:

答案 0 :(得分:0)

不幸的是,据我所知,不是 const enum值必须是常量表达式 - 因此0,1,72。在这种情况下,您在运行时计算值 - 因此它不是常量表达式。
对于const枚举,编译器不会将枚举转换为JavaScript类 - 它只是用相应的值替换代码中的const值。所以这段代码:

const enum LEADER {
    NONE = 72,
}

var testValue = LEADER.NONE;

刚刚成为这个JavaScript:

var testValue = 72 /* NONE */;

希望这有帮助。