如何从模块中导出枚举,以便可以在运行时将其导入并解析

时间:2019-07-16 13:03:48

标签: typescript enums

在名为“ common”的共享模块中有以下枚举:

export enum TranslationValue {
  VH = -2,
  VL = 1,
  Neutral = 0,
  AL = 1,
  AH = 2,
  NA = "NA",
  IR = "IR"
}

使用选项declaration: true进行编译时,在输出d.ts文件中得到以下内容:

export declare enum TranslationValue {
    VH = -2,
    VL = 1,
    Neutral = 0,
    AL = 1,
    AH = 2,
    NA = "NA",
    IR = "IR"
}

然后另一个程序包使用此共享模块,并给我一个运行时错误:

  

尝试导入错误:未从'@ gemini / common'导出'TranslationValue'

这是什么问题?我知道关键字declare的意思是,我基本上是在告诉编译器在运行时将枚举定义在其他位置,但是我不知道该如何解决。我不想在任何地方重新定义枚举。我只希望将其导出,以便可以直接从通用模块导入和使用它。

这是我用于tsconfig的内容:

{
  "compilerOptions": {
    "module": "commonjs",
    "lib": ["esnext"],
    "target": "esnext",
    "strict": true,
    "moduleResolution": "node",
    "esModuleInterop": true
    "declaration": true,
    "outDir": "dist",
    "rootDir": "src",
    "sourceMap": true
  }
}

0 个答案:

没有答案