缺少TypeScript项目中的基本DOM类型

时间:2017-03-05 02:27:43

标签: javascript typescript npm

我正在使用TypeScript设置一个Web应用程序,我似乎缺少一些我需要的基本类型。

当我编译(npm run build)时,我收到以下错误,

  

错误TS2304:找不到名称'HTMLElement'。

     

错误TS2304:找不到名称'SVGElement'。

     

错误TS2304:找不到名称'EventTarget'。

     

错误TS2304:找不到名称'TouchEvent'。

     

错误TS2304:找不到名称'MouseEvent'。

     

错误TS2304:找不到名称'PointerEvent'。

基于我的谷歌搜索我假设我在项目设置中遗漏了一些基本内容。看起来这些类型只是假设与Typescript一起出现。

编辑:特别是它应该是ES6类型的一部分,https://github.com/Microsoft/TypeScript/blob/master/lib/lib.es6.d.ts

这是我的package.json文件:

{
  "name": "wip",
  "version": "1.0.0",
  "description": "",
  "main": "index.html",
  "dependencies": {
    "hammerjs": "2.0.8"
  },
  "devDependencies": {
    "@types/chai": "3.4.35",
    "@types/mocha": "2.2.39",
    "@types/node": "7.0.5",
    "@types/hammerjs": "2.0.34",
    "chai": "3.5.0",
    "mocha": "3.2.0",
    "safe-mock": "0.2.0",
    "ts-node": "2.1.0",
    "tslint": "4.5.1",
    "typescript": "2.2.1",
    "webpack": "^2.2.1",
    "webpack-dev-server": "^2.4.1"
  },
  "scripts": {
    "test": "mocha test --require ts-node/register test/**/*.ts && npm run build",
    "dev": "webpack-dev-server --watch --content-base . -d --progress",
    "build": "tsc"
  },
  "author": "",
  "license": "ISC"
}

有什么建议吗?

2 个答案:

答案 0 :(得分:26)

尝试将以下lib部分添加到您的tsconfig.json文件中。

{
    "compilerOptions": {
        "lib": [
            "es2016",
            "dom"
        ]
    }
}

答案 1 :(得分:1)

其他测试答案。

如果使用mocha,还需要使用jsdom向mocha讲述DOM环境。

https://journal.artfuldev.com/unit-testing-node-applications-with-typescript-using-mocha-and-chai-384ef05f32b2

$ npm install jsdom jsdom-global --save-dev

因此,您的“测试”脚本将添加-r jsdom-global/register

{
  "scripts": {
    "test": "mocha test -r ts-node/register -r jsdom-global/register test/**/*.ts && npm run build"
  }
}