【发布时间】:2017-06-20 20:11:30
【问题描述】:
我有 vscode 1.9 并且我想要智能感知来进行开玩笑测试。问题是describe、it、expect 等在全球范围内都是开玩笑的,您不需要在测试文件中使用import 它们。所以 vscode 不会为他们显示智能感知。
是否有任何用于自动获取类型的全局变量的配置?
【问题讨论】:
我有 vscode 1.9 并且我想要智能感知来进行开玩笑测试。问题是describe、it、expect 等在全球范围内都是开玩笑的,您不需要在测试文件中使用import 它们。所以 vscode 不会为他们显示智能感知。
是否有任何用于自动获取类型的全局变量的配置?
【问题讨论】:
在这种情况下,您有几个选择:
将jest 添加到您的package.json:
"dependencies": {
"jest": "^18.1.0"
}
这仅在您使用 JavaScript 并且没有 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:
{
"typeAcquisition": {
"include": [
"jest"
]
}
}
这仅适用于启用自动类型获取的 JavaScript 项目。
所有这些都应该允许 VSCode 在没有 import 或 require 的情况下接收 jest 的类型
【讨论】:
jsconfig.json 的第三个选项似乎完全关闭了我的自动完成功能(包括开玩笑)。有什么想法吗?
npm install @types/jest。
devDependencies 中有jest-cli。另外,我还没有尝试过第二种选择。
npm i -D @types/jest) 效果很好 - 谢谢!
我尝试安装@types/jest,它确实有效,但问题是它导致我的.js 文件中也出现了开玩笑的建议。我无法弄清楚如何仅在 .test.js 文件中获取针对 test、expect 等的全局建议,但不是在 .js 文件中。
所以我决定手动导入每个 .test.js 文件中要使用的每个 jest 全局变量,这允许建议与类型一起出现,但避免建议出现在 .js 文件中:
import { test, expect } from '@jest/globals'
【讨论】:
npm install -D @types/jest
编辑 jest.config.js
typeAcquisition: {
include: ['jest'],
},
【讨论】: