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