【问题标题】:Typescript const Enum issue打字稿常量枚举问题
【发布时间】:2017-06-20 20:59:01
【问题描述】:

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

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

}

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

在“const”枚举声明中,成员初始化器必须是常量表达式。

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

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

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

}

然后我收到以下错误:

Type '"."' 不可分配给 type 'INPUT_PATTERNS'。
Type '"[0-9]"' 不可可分配给类型“INPUT_PATTERNS”。

【问题讨论】:

标签: typescript


【解决方案1】:

你可以这样做:

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

}

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-03-06
      • 2020-02-13
      • 2020-04-30
      • 2021-10-11
      • 2018-10-23
      • 2017-05-09
      • 1970-01-01
      • 1970-01-01
      • 2020-10-27
      相关资源
      最近更新 更多