代码之家  ›  专栏  ›  技术社区  ›  Amal

将枚举从Typescript转换为JavaScript时出错

  •  0
  • Amal  · 技术社区  · 6 年前

    我在Typescript中有一个枚举

    export const enum CarType {
        SED = "Sedan"
    }
    

    生成后的JavaScript代码:

    "use strict";
    Object.defineProperty(exports,"_esModule, { value: true })
    

    所以基本上js代码没有逻辑,相反只有.d.ts文件有相同的逻辑。 当我用 tsc CarType.SED ,它给出的错误如下- Cannot read property SED of undefined

    1 回复  |  直到 6 年前
        1
  •  1
  •   Felix Kling    6 年前

    documenation :

    常量枚举只能使用常量枚举表达式和 与常规枚举不同,它们在编译过程中被完全删除。

    卸下 const

        2
  •  0
  •   Allenaz    5 年前

    您可以设置编译器选项( TSC options )“preserveConstEnums”为真:

    tsconfig.json文件:

    {
      "compilerOptions": {
        "preserveConstEnums": true,
        ...
      },
      ...
    }
    

    或命令行:

    tsc --preserveConstEnums true path/to/some_file.ts
    

    constant enum spec