在名为“ 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
}
}