我对使用 Typescript 和 Jest 比较陌生,而且我一直遇到一个问题,我在@types/screeps
. 这些看起来像这样:
declare const OK: 0;
declare const ERR_NOT_OWNER: -1;
//etc.
每当我在测试中使用这些常量时,我都会得到一个ReferenceError: OK is not defined
inside Jest。如果我确实在测试中声明了该值,则错误的位置将移动到正在测试的文件中。
我做了一些谷歌搜索,我在 ts-jest 存储库中发现了这个特殊的错误:https ://github.com/kulshekhar/ts-jest/issues/112
但是,我很难跟踪讨论,因为我几乎没有使用过 Typescript,而且我真的不明白如何自己解决这个问题。我想要的是能够在环境范围内声明这些值并在我的测试中使用它们。每当使用 rollup 编译代码时,该类型就会被拾取(因为它是运行时 Screeps 中全局可用的值,并且编译后的输出很好)。我不介意调整 tsconfig.json 或复制文件/一起破解解决方案。
我尝试将 @types 文件夹中的 index.d.ts 复制到我的测试文件夹中,尝试对其进行导入,尝试将其更改declare const
为export const
(但随后我需要导入模块并且它都在特定的命名空间中)。尝试做一个declare global
,也没有运气。
出于我无法理解的原因,这种行为似乎是故意的。我真的很困惑,有没有办法解决这个问题?还是我运气不好?