Typescript const枚举问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Typescript const枚举问题相关的知识,希望对你有一定的参考价值。

我在我的Typescript文件中声明了以下枚举:

export const enum INPUT_PATTERNS{
    ALL          = ".*",
    ONLY_NUMBERS = "[0-9]*"

}

在编译期间,我继续收到以下错误消息:

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

我用常量值初始化了枚举,所以我不明白这里有什么问题?

其次,如果我从枚举中删除const标识符如下:

export enum INPUT_PATTERNS{
    ALL          = ".*",
    ONLY_NUMBERS = "[0-9]*"

}

然后我收到以下错误:

键入'“。”'不能分配给'INPUT_PATTERNS'。 类型'“[0-9]”'不能分配给'INPUT_PATTERNS'类型。

答案

你可以这样做:

export enum INPUT_PATTERNS{
    ALL          = <any>".*",
    ONLY_NUMBERS = <any>"[0-9]*" 

}
另一答案

枚举允许我们定义一组命名的数字常量。 http://www.typescriptlang.org/docs/handbook/enums.html

您可以使用命名空间和const变量的组合:

export namespace INPUT_PATTERNS {
    export const ALL = ".*";
    export const ONLY_NUMBERS = "[0-9]*";
}

以上是关于Typescript const枚举问题的主要内容,如果未能解决你的问题,请参考以下文章

LayaBox---TypeScript---枚举

TypeScript 断言使用

Eslint 说 Typescript 应用程序中的所有枚举“已经在上层范围内声明”

在 TypeScript 中动态访问 const 对象字面量

使用枚举重载 TypeScript 函数

TypeScript 中的“as const”是啥意思,它的用例是啥?