我有vscode 1.9,我想有jest测试的intellisense。问题是describe、it、expect等在jest中是全局可用的,你不需要在测试文件中使用import。所以vscode不会为它们显示intellisense。是否有任何全局变量的自动类型获取配置?
describe
it
expect
import
3phpmpom1#
在这种情况下,您有几个选择:将jest添加到您的package.json:
jest
package.json
"dependencies": { "jest": "^18.1.0" }
这只适用于使用JavaScript并且没有tsconfig.json的情况。安装@types/jest
tsconfig.json
@types/jest
$ npm install -D @types/jest
这应该适用于JavaScript和TypeScript项目。但是@types可以被jsconfig.json/tsconfig.json禁用:http://www.typescriptlang.org/docs/handbook/tsconfig-json.html在工作区的根目录下创建一个jsconfig.json文件,专门包含jest:
@types
jsconfig.json
{ "typeAcquisition": { "include": [ "jest" ] } }
这只适用于启用自动类型获取的JavaScript项目。所有这些都应该允许VSCode在没有import或require的情况下获取jest的类型
require
yvt65v4c2#
我尝试安装@types/jest,它确实工作了,但问题是它导致jest建议也出现在我的.js文件中。我不知道如何获得test、expect等的全局建议。仅在.test.js文件中,而不是在.js文件中。因此,我决定手动导入我要在每个.test.js文件中使用的每个jest global,这允许建议与类型一起出现,但避免建议出现在.js文件中:import { test, expect } from '@jest/globals'
.js
test
.test.js
import { test, expect } from '@jest/globals'
yduiuuwa3#
npm install -D @types/jest编辑jest.config.js
typeAcquisition: { include: ['jest'], },
tag5nh1u4#
在tsconfig.json中,确保将jest条目添加到types列表中。举例来说:
types
{ "compilerOptions": { "esModuleInterop": true, "lib": ["es2022"], "module": "es2022", "moduleResolution": "node", "strict": true, "sourceMap": true, "target": "ES2022", "types": ["node", "jest"], "outDir": "build" }, "include": ["src/**/*"], "exclude": ["node_modules"] }
4条答案
按热度按时间3phpmpom1#
在这种情况下,您有几个选择:
将
jest
添加到您的package.json
:这只适用于使用JavaScript并且没有
tsconfig.json
的情况。安装
@types/jest
这应该适用于JavaScript和TypeScript项目。但是
@types
可以被jsconfig.json
/tsconfig.json
禁用:http://www.typescriptlang.org/docs/handbook/tsconfig-json.html在工作区的根目录下创建一个
jsconfig.json
文件,专门包含jest:这只适用于启用自动类型获取的JavaScript项目。
所有这些都应该允许VSCode在没有
import
或require
的情况下获取jest的类型yvt65v4c2#
我尝试安装
@types/jest
,它确实工作了,但问题是它导致jest建议也出现在我的.js
文件中。我不知道如何获得test
、expect
等的全局建议。仅在.test.js
文件中,而不是在.js
文件中。因此,我决定手动导入我要在每个
.test.js
文件中使用的每个jest global,这允许建议与类型一起出现,但避免建议出现在.js
文件中:import { test, expect } from '@jest/globals'
yduiuuwa3#
npm install -D @types/jest
编辑jest.config.js
tag5nh1u4#
在tsconfig.json中,确保将
jest
条目添加到types
列表中。举例来说: