Typescript 无法识别 Jest 类型

问题描述 投票:0回答:3

问题

我正在尝试用笑话设置一个打字稿项目。然而,打字稿似乎没有从

@types/jest
中获取笑话类型,它突出显示了我的关键字,给了我以下错误:

Cannot find name 'test'. Do you need to install type definitions for a test runner? Try 'npm i @types/jest' or 'npm i @types/mocha'. ts(2582)

备注:

  • 我正在使用 VS Code
  • 我已经安装了@types/jest
  • 我已尝试重新安装所有软件包
  • 我已重新加载我的编辑器
  • 这是我的 tsconfig.json
{
  "compilerOptions": {
    "types": ["jest", "node"]
  },
  "types": ["jest"],
  "typeRoots": ["./src/types", "./node_modules/@types"],
}
  • 这是我的 jest.config.js
module.exports = {
  preset: 'ts-jest',
  roots: ['<rootDir>/src'],
  testEnvironment: 'node',
  moduleFileExtensions: ['ts', 'js', 'json', 'node'],
};
  • 这是我的.babelrc
{
  "presets": [
    ["@babel/preset-env", {"targets": {"node": "current"}}],
    "@babel/preset-typescript"
  ],
  "plugins": ["@babel/transform-runtime"]
}
  • 这是我的 package.json 中的开发依赖项

我的测试运行良好,

npm run test
,但这仍然是一个恼人的问题,我想这只是我的配置之一或其他东西中缺少
./
。虽然打字稿/笑话有点新鲜,但可能是别的东西。希望我提供了足够的信息,但如果有必要,我很乐意添加更多信息 任何帮助将不胜感激,干杯

javascript node.js typescript jestjs config
3个回答
5
投票

如果有人遇到类似问题,请检查您的

tsconfig

中的以下字段
    "include": ["src/**/*"]

确保您已包含该文件:

    "exclude": ["node_modules", "dist"]

最后检查您是否指定了

typeRoots
,默认情况下指向
./node_modules/@types
并且
types
包含笑话


4
投票

我不是专家,但在修改 typeRoots 属性后,我遇到了同样的问题(尽管设置不同),并且我能够通过在“types”属性中包含“@types/jest”来使其工作tsconfig.json

{
"compilerOptions": {
    "target": "es6",                          
    "module": "commonjs",                    
    "outDir": "./dist",                        
    "rootDir": "./",                      
    "strict": true,                           
    "typeRoots": [      
    "./node_modules/@types/",
    "./src/@types/"
    ],                       
    "types": ["jest", "node", "@types/jest"],                          
    "esModuleInterop": true,                  
    "skipLibCheck": true,                    
    "forceConsistentCasingInFileNames": true  
},
"exclude": ["node_modules"],
"include": ["./src/**/*.tsx", "./src/**/*.ts"]
}

0
投票

依赖树有可能损坏。
杀死

node_modules
package-lock.json

然后运行
npm i

© www.soinside.com 2019 - 2024. All rights reserved.