Javascript 当我使用jest(TS jest异步/等待测试)时,WebStorm提示我TS错误(TS2705)

Javascript 当我使用jest(TS jest异步/等待测试)时,WebStorm提示我TS错误(TS2705),javascript,typescript,webstorm,jestjs,Javascript,Typescript,Webstorm,Jestjs,套餐: 开玩笑 开玩笑 @类型/笑话 IDE: 网络风暴 当我使用异步测试时,有一个我无法解决的TS错误(TS2705)。但此提示不会影响jest命令 当我使用最小的测试时,会出现相同的错误: import {} from 'jest'; test('async test',async ()=>{ }); jest.config.js module.exports = { "transform": { "^.+\\.tsx?$": "ts-jest"

套餐: 开玩笑 开玩笑 @类型/笑话

IDE: 网络风暴

当我使用异步测试时,有一个我无法解决的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错误提示?

问题已解决

但我不明白这个原则


我在
tests
目录中添加了一个tsconfg.json文件并解决了它。

问题已经解决

但我不明白这个原则


我在
tests
目录中添加了一个tsconfg.json文件并解决了它。

如果在首选项|语言与框架| TypeScript中启用了TypeScript服务,它将使用最接近的
tsconfig.json
当前文件包含在目录中,从文件目录扫描到项目根目录。如果未找到当前文件中包含的
tsconfig.*.json
文件,则默认配置用于文件linting。 请注意根目录中的“include”部分
tsconfig.json

"include":[
    "./app/**/*.ts",
    "./config/**/*.ts",
    "./app.ts",
    "./preload.ts"
  ],
规范文件所在的“测试”目录不包括在TypeScript项目中。见:

如果未指定“文件”和“包含”,则编译器默认包括包含目录和子目录中的所有TypeScript(.ts、.d.ts和.tsx)文件,但使用“排除”属性排除的文件除外。如果指定了“文件”或“包含”属性,编译器 将包含这两个属性包含的文件的并集

因此,找不到适合您的规范文件的
tsconfig.json
文件(您必须在typeScript控制台中看到警告“找不到根tsconfig.json”)。因此,使用了默认的编译器首选项(不包括
“es2015”
库),从而导致错误。
在根配置中包含测试文件或在“tests”目录中添加带有适当设置的单独的
tsconfig.json
应该可以解决这个问题。

如果在首选项|语言与框架| TypeScript中启用了TypeScript服务,它将使用最接近的
tsconfig.json
当前文件包含在,将文件夹从文件目录扫描到项目根目录。如果未找到当前文件中包含的
tsconfig.*.json
文件,则默认配置用于文件linting。 请注意根目录中的“include”部分
tsconfig.json

"include":[
    "./app/**/*.ts",
    "./config/**/*.ts",
    "./app.ts",
    "./preload.ts"
  ],
规范文件所在的“测试”目录不包括在TypeScript项目中。见:

如果未指定“文件”和“包含”,则编译器默认包括包含目录和子目录中的所有TypeScript(.ts、.d.ts和.tsx)文件,但使用“排除”属性排除的文件除外。如果指定了“文件”或“包含”属性,编译器 将包含这两个属性包含的文件的并集

因此,找不到适合您的规范文件的
tsconfig.json
文件(您必须在typeScript控制台中看到警告“找不到根tsconfig.json”)。因此,使用了默认的编译器首选项(不包括
“es2015”
库),从而导致错误。
在根配置中包含测试文件,或者在“tests”目录中添加带有适当设置的单独的
tsconfig.json
应该可以解决问题。

tsconfig.json
中添加
“es2015”
“lib”
应该可以解决问题,但您已经添加了它。您的项目中有多少
tsconfig.*.json
tsconfig.app.json
tsconfig.test.json
等)文件?谢谢回答。只有一个tsconfg.json。在
tsconfig.json
中将
“es2015”
添加到
“lib”
中可以解决此问题,但您已经添加了它。您的项目中有多少
tsconfig.*.json
tsconfig.app.json
tsconfig.test.json
等)文件?谢谢回答。只有一个tsconfg.json。