带有Typescript和Jest的VS代码

时间:2018-03-31 18:47:17

标签: node.js typescript visual-studio-code jest

我在使用Jest进行测试的Typescript项目中使用VS Code。出于某种原因,VS Code认为jest全局变量不可用。

enter image description here

我的dev依赖项中安装了jest typedef。

"devDependencies": {
    // ...truncated
    "@types/jest": "^20",
    "jest": "^20.0.4",
    "ts-jest": "^20.0.7",
    "ts-node": "^5.0.0",
    "typescript": "~2.4.0"
}

4 个答案:

答案 0 :(得分:3)

这里的正确答案是,在智能全局对象对智能感知可见之前,打字稿需要jest的类型声明。

将此三重斜杠指令添加到测试文件的开头:

/// <reference types="jest" />

答案 1 :(得分:0)

这可能是一个愚蠢的问题,但你导入了你正在使用的对象吗?

此外,这个问题可能有所帮助:How to import jest?

答案 2 :(得分:0)

我将我的Typescript版本升级到2.8,这个问题就消失了。我将假设它是某种缓存问题。

答案 3 :(得分:0)

尽管我的@types/jest中也有devDependencies,但我也同样为此问题苦苦挣扎多次。

我创建了jest-without-globals作为非常小型包装程序,以支持导入Jest的功能,而不是依赖于全局变量,从而确保变量存在。
它也是用TypeScript编写的,以确保在导入时可以正确键入它,并且您无需执行其他任何操作即可使类型起作用。

Per the Usage docs,使用起来很简单:

import { describe, it, expect } from 'jest-without-globals'

describe('describe should create a section', () => {
  it('it should checkmark', () => {
    expect('').toBe('')
   })
})

Jest's API中的所有可用功能以及jestexpect都可以从jest-without-globals导入。