我正在尝试用笑话设置一个打字稿项目。然而,打字稿似乎没有从
@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)
备注:
{
"compilerOptions": {
"types": ["jest", "node"]
},
"types": ["jest"],
"typeRoots": ["./src/types", "./node_modules/@types"],
}
module.exports = {
preset: 'ts-jest',
roots: ['<rootDir>/src'],
testEnvironment: 'node',
moduleFileExtensions: ['ts', 'js', 'json', 'node'],
};
{
"presets": [
["@babel/preset-env", {"targets": {"node": "current"}}],
"@babel/preset-typescript"
],
"plugins": ["@babel/transform-runtime"]
}
我的测试运行良好,
npm run test
,但这仍然是一个恼人的问题,我想这只是我的配置之一或其他东西中缺少./
。虽然打字稿/笑话有点新鲜,但可能是别的东西。希望我提供了足够的信息,但如果有必要,我很乐意添加更多信息 任何帮助将不胜感激,干杯
如果有人遇到类似问题,请检查您的
tsconfig
中的以下字段
"include": ["src/**/*"]
确保您已包含该文件:
"exclude": ["node_modules", "dist"]
最后检查您是否指定了
typeRoots
,默认情况下指向./node_modules/@types
并且types
包含笑话
我不是专家,但在修改 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"]
}
依赖树有可能损坏。
杀死
node_modules
和package-lock.json
。npm i
。