我有一个Angular 2项目,我希望使用Karma,Jasmine和Webpack添加单元测试。但是,在设置完成后,我遇到了一个问题,即测试编译并成功运行,但是控制台输出会记录TypeScript的大量错误,说它无法找到某些jasmine和es6类的名称,如下所示:
我无法弄清楚为什么会发生这种情况,因为我遇到类似问题的所有情况都在使用< TypeScript 2.0,所以问题通常与打字有关。在我的情况下,我正在运行TypeScript 2.0.8,并通过npm @types使用新样式进行打字。显然,编译器在某种程度上正确地找到了类型(因为单元测试在错误之后运行正常),同时仍然说它们不存在。有没有人以前遇到过这个问题并且知道解决方案?
答案 0 :(得分:3)
显然编译器在某种程度上正确地找到了类型(因为单元测试在错误之后运行正常)
这是不正确的。实际上编译器不找到它们。它工作正常,因为你已经将茉莉(JS)和es6-shim(JS)添加到业力运行时。它无法找到输入(因此编译错误)但在运行时JS文件存在于环境中。
确保你有
@types/jasmine
和@types/core-js
在tsconfig.json - compilerOptions
"typeRoots": [
"./node_modules/@types/"
]
// works for me without it, but maybe also
"types": [
"jasmine",
"core-js"
]