【问题标题】:vscode automatic type acquisition for jest开玩笑的vscode自动类型获取
【发布时间】:2017-06-20 20:11:30
【问题描述】:

我有 vscode 1.9 并且我想要智能感知来进行开玩笑测试。问题是describe、it、expect 等在全球范围内都是开玩笑的,您不需要在测试文件中使用import 它们。所以 vscode 不会为他们显示智能感知。

是否有任何用于自动获取类型的全局变量的配置?

【问题讨论】:

    标签: visual-studio-code jestjs


    【解决方案1】:

    在这种情况下,您有几个选择:

    将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。另外,我还没有尝试过第二种选择。
    • 第二个选项对我有用,而其他选项都没有。我正在使用 vscode v1.14
    • 第二种解决方案 (npm i -D @types/jest) 效果很好 - 谢谢!
    【解决方案2】:

    我尝试安装@types/jest,它确实有效,但问题是它导致我的.js 文件中也出现了开玩笑的建议。我无法弄清楚如何仅在 .test.js 文件中获取针对 test、expect 等的全局建议,但不是在 .js 文件中。

    所以我决定手动导入每个 .test.js 文件中要使用的每个 jest 全局变量,这允许建议与类型一起出现,但避免建议出现在 .js 文件中:

    import { test, expect } from '@jest/globals'

    【讨论】:

      【解决方案3】:

      npm install -D @types/jest

      编辑 jest.config.js

        typeAcquisition: {
          include: ['jest'],
        },
      

      【讨论】:

        猜你喜欢
        • 2021-09-29
        • 2021-01-09
        • 2021-06-26
        • 1970-01-01
        • 2022-08-07
        • 2020-11-22
        • 1970-01-01
        • 1970-01-01
        • 2018-09-11
        相关资源
        最近更新 更多