添加到你的 jsconfig.json
文件中:
{
"typeAcquisition": {
"include": [
"jest"
]
}
}
npm install @types/jest
yarn add -D @types/jest
jest
的 npm 包? - Diogo Rochanpm i jest
。假设你有一个包含两个目录(backend和frontend)的项目,请将此文件放入这两个目录中。然后重新启动vscode。现在应该可以使用自动完成功能了。 - Muhammed Bera Koçnpm install @types/jest
。 - JackWilson更新 2023
只需通过此命令安装@types/jest
:
npm i @types/jest --save-dev
或者yarn add -D @types/jest
--save-dev
对于教程方面更有意义和适合。 - undefined{
"typeAcquisition": {
"include": [
"jest"
]
}
}
对于那些在根目录下无法成功添加上述内容到jsconfig.json
的人:尝试将其添加到测试文件夹中(包含*.test.js
文件的文件夹)
jest.config.js
中更改了roots
,所以我必须将jsconfig.json
放在我的根目录下。 - Kyle Pittman这并非适用于所有人,但如果代码库采用单一存储库排列方式,并且您使用vscode作为编辑器,则可能希望在根目录中安装@types/jest
,而不是分别安装。
对我来说,没有任何解决方案可用。在浏览了一些能够正常工作的GitHub仓库之后,我发现了一个名为jest.config.js
的文件。以下是该文件的配置:
module.exports = {
transform: {
'^.+\\.ts?$': 'ts-jest',
},
testEnvironment: 'node',
testRegex: './src/.*\\.(test|spec)?\\.(ts|ts)$',
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
roots: ['<rootDir>/src'],
};
注意:这是针对ts
的。如果您没有使用TypeScript,请将所有ts
更改为js
。
保存后,重新启动Vscode,它将按预期工作。
npm i -D @types/jest
"devDependencies": {
"@types/jest": "^29.5.2",
"jest": "^29.5.0"
}
你调用代码的位置很重要。有时当你在错误的函数或代码块中时,智能感知无法正常工作。
因此,如果你尝试:
beforeEach(() => ({
mockedUseAccount.
}));
智能感知无法工作。
如果您尝试:
beforeEach(() => {
mockedUseAccount.
});
智能感知运作良好。
https://jestjs.io/docs/configuration
jest.config.js
/** @type {import('jest').Config} */
const config = {
verbose: true,
};
module.exports = config;
/** @returns {Promise<import('jest').Config>} */
module.exports = async () => {
return {
verbose: true,
};
};
import type {Config} from 'jest';
const config: Config = {
verbose: true,
};
export default config;
import type {Config} from 'jest';
export default async (): Promise<Config> => {
return {
verbose: true,
};
};
正确的答案确实是安装@types/jest
:
yarn add -D @types/jest
然而,如果你已经安装了 Jest 并且 VS Code 中 Jest 的函数(describe
、it
等)仍然没有类型信息,请检查你的 tsconfig.json
文件中的 typeRoots
。
我为一个没有任何自定义类型的包创建了一些自定义类型,并将它们放在了 ./types
文件夹中。为了让 TypeScript 能够识别这些类型,我在我的 tsconfig.json
中添加了 typeRoots: ["./types"]
。然而,在那里指定类型根目录会覆盖 TypeScript 的默认值["./node_modules/@types"]
, 因此它将无法找到 @types/jest
。
所以,如果你在你的 tsconfig.json
中有一个自定义的 typeRoots
值,除了安装 @types/jest
外,还要确保你也包含了这个(将 ./types
替换为其他你配置的自定义类型根目录):
"typeRoots": ["./node_modules/@types", "./types"],