**已关闭。**此问题需要debugging details。它目前不接受回答。
编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答这个问题。
13天前关闭
Improve this question的
我有一个nx仓库,里面有一个NextJs应用程序,它的tsconfig.json有这个错误:
Cannot find type definition file for 'jest'.
The file is in the program because:
Entry point of type library 'jest' specified in compilerOptions
字符串
据我所知,这个问题过去只是一个警告,但是在将nx repository从16.3.2迁移到16.5.2之后,这现在导致了一个构建错误。
我已经安装了这些devDeps:
"@nx/jest": "16.5.2",
"@types/jest": "^29.4.4",
"babel-jest": "29.4.3",
"jest": "29.4.3",
"jest-environment-jsdom": "29.4.3",
"ts-jest": "29.1.0",
型
tsconfig.json有:
"types": [
"node",
"jest"
],
型
我试过:
- 删除node_modules和.next文件夹,关闭VSCode后重新安装模块,并杀死所有可能仍在运行的隐藏进程
- 2小时google
任何想法是什么错了,如何尝试和解决这个问题?
1条答案
按热度按时间li9yvcax1#
某些包可能不包含它们自己的类型定义。发生此错误的原因是:
您正在使用typescript,编译器在
node_modules
的包文件夹或任何指定的类型根目录中找不到类型定义文件。Jest有DefinitelyTyped提供的类型定义。您可以通过运行以下命令来安装它们:
使用Yarn
字符串
使用NPM
型
正如您所看到的,上述两个命令都将此依赖项保存为开发依赖项,这意味着代码将不会包含在您的生产包中。这对于类型脚本类型是最佳的,因为你的代码无论如何都会被编译成JS。
找不到包的类型怎么办?
如果你遇到的包不包含自己的类型定义,并且在DefinitelyTyped存储库中没有为它创建定义,你可以在
.d.ts
文件中为包定义自己的类型,如下所示:型
如果您为尚未类型化的包创建自定义类型定义,请考虑为DefinitelyTyped存储库做贡献,以便其他人也可以从您的类型中受益。