npm install @types/jest --save-dev
修复只是尝试输入
it()
,自动建议是 isTag
我尝试添加 jsconfig.json
{
"compilerOptions": {
"target": "es6"
},
"exclude": [
"node_modules",
"assets"
]
}
感谢任何对此提出建议的人!
添加到您的
jsconfig.json
:
{
"typeAcquisition": {
"include": [
"jest"
]
}
}
如果这不起作用,请尝试使用此命令:
npm install @types/jest
或
yarn add -D @types/jest
2023 年更新
只需通过以下命令安装
@types/jest
:
npm i @types/jest --save-dev
或
yarn add -D @types/jest
{
"typeAcquisition": {
"include": [
"jest"
]
}
}
对于那些未能将上述内容添加到根文件夹中的
jsconfig.json
的人:尝试将其添加到测试文件夹(包含 *.test.js
文件的文件夹)
这并不适合所有人,但如果代码库在 monorepo 排列中有多个包,并且您使用 vscode 作为编辑器,您可能需要在根目录中安装
@types/jest
,而不是单独安装。
npm i -D @types/jest
它会在 package.json 中自动添加一行:
"devDependencies": {
"@types/jest": "^29.5.2",
"jest": "^29.5.0"
}
你没有别的事可做。
没有一个解决方案适合我。在深入研究了一些 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
。如果您不使用打字稿,请将所有 ts
更改为 js
。
保存后,重新启动Vscode,就可以正常工作了。
你在哪里称呼它会有所不同。有时,当您处于错误的函数或代码块中时,智能感知不起作用。
所以如果你尝试:
beforeEach(() => ({
mockedUseAccount.
}));
智能感知不起作用。
如果你尝试:
beforeEach(() => {
mockedUseAccount.
});
智能感知工作正常。
奇怪的是这些还没有被共享 - 使用 jsdoc 代替:
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,
};
};
如果您使用的是 TypeScript 文件 (jest.config.ts):
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 的功能(
describe
、it
等)在 VS Code 中仍然没有类型信息,请检查 typeRoots
中的 tsconfig.json
。
我为一个没有任何自定义类型的包制作了一些自定义类型,并将它们放在
./types
文件夹中。为了让 TypeScript 识别这些,我将 typeRoots: ["./types"]
添加到我的 tsconfig.json
中。但是,在那里指定类型根会覆盖 TypeScript 的默认值 ["./node_modules/@types"]
,因此它将不再能够找到 @types/jest
。因此,如果您的
typeRoots
中有
tsconfig.json
的自定义值,那么除了安装
@types/jest
之外,请确保还包含此值(将
./types
替换为您配置的任何其他自定义类型根文件夹):
"typeRoots": ["./node_modules/@types", "./types"],
检查 tsconfig.json 文件中的
"types": ["node","jest"],
。如果列表中未添加 jest,请添加并重新启动 VS Code。
我尝试了所有选项,但创建了 jsconfig.json
S/o @vikramvi 的
他对OP问题的评论让我找到了这个解决方案。
显式导入之前 显式导入后