包裹: 笑话 TS-开玩笑 @类型/开玩笑
IDE: WebStorm
当我使用jest异步测试时,我无法解决TS错误(TS2705)。但是这个提示不会影响jest
命令。
使用最小的测试时出现相同的错误:
import {} from 'jest';
test('async test',async ()=>{
});
jest.config.js
module.exports = {
"transform": {
"^.+\\.tsx?$": "ts-jest"
},
"testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
"moduleFileExtensions": [
"ts",
"tsx",
"js",
"jsx",
"json",
"node"
],
globals:{
'ts-jest':{
// I have the same behavior when I delete this line
"tsConfigFile": "./tsconfig.json"
}
}
};
tsconfig.json
{
"compilerOptions": {
"types": [
"node"
],
"module": "commonjs",
"target": "es2017",
"lib": [
"es2015",
"es2016",
"esnext.asynciterable"
],
"noImplicitAny": false,
"noImplicitThis": false,
"inlineSourceMap": true,
"rootDirs": ["."],
"outDir":"./dist",
"experimentalDecorators":true,
"emitDecoratorMetadata": true,
"moduleResolution": "node",
"watch":false
},
"include":[
"./app/**/*.ts",
"./config/**/*.ts",
"./app.ts",
"./preload.ts"
],
"exclude": [
"./dist/**/*.*"
]
}
如何解决此IDE错误提示?
答案 0 :(得分:4)
如果在首选项|中启用了TypeScript服务语言与框架| TypeScript ,它使用最近的tsconfig.json
当前文件,扫描文件夹从文件目录到项目根目录。如果找不到包含tsconfig.*.json
个文件的当前文件,则默认配置用于文件linting。
请注意" 包括"根目录tsconfig.json
中的部分:
"include":[
"./app/**/*.ts",
"./config/**/*.ts",
"./app.ts",
"./preload.ts"
],
"测试"您的规范文件所在的目录未包含在TypeScript项目中。见tsconfig.json documentation:
如果"文件"和"包括"如果未指定,编译器默认包含所有包含目录和子目录中的TypeScript(.ts,.d.ts和.tsx)文件,但使用" exclude"排除的文件除外。属性。如果"文件"或"包括"属性是指定的,编译器 将改为包括这两个属性包含的文件的并集。
因此,找不到适合您的规范文件的tsconfig.json
文件(您必须在typeScript控制台中看到警告'没有找到root tsconfig.json)。因此,使用了不包含"es2015"
库的默认编译器首选项 - 因此出现错误。
在您的根配置中包含测试文件,或在"测试"中添加具有适当设置的单独tsconfig.json
目录应解决问题。
答案 1 :(得分:0)