Javascript TypeScript项目中缺少基本DOM类型
我正在用TypeScript设置一个web应用程序,我似乎缺少一些我需要的基本类型 当我编译(Javascript TypeScript项目中缺少基本DOM类型,javascript,typescript,npm,Javascript,Typescript,Npm,我正在用TypeScript设置一个web应用程序,我似乎缺少一些我需要的基本类型 当我编译(npm run build)时,我得到以下错误: 错误TS2304:找不到名称“HtmleElement” 错误TS2304:找不到名称“SVGElement” 错误TS2304:找不到名称“EventTarget” 错误TS2304:找不到名称“TouchEvent” 错误TS2304:找不到名称“MouseEvent” 错误TS2304:找不到名称“PointerEvent” 基于我的谷歌搜索,我假
npm run build
)时,我得到以下错误:
错误TS2304:找不到名称“HtmleElement”
错误TS2304:找不到名称“SVGElement”
错误TS2304:找不到名称“EventTarget”
错误TS2304:找不到名称“TouchEvent”
错误TS2304:找不到名称“MouseEvent”
错误TS2304:找不到名称“PointerEvent”
基于我的谷歌搜索,我假设我的项目设置中缺少一些基本的东西。似乎这些类型只是假设在Typescript中存在
编辑:特别是它应该是ES6类型的一部分
这是我的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"
}
有什么建议吗?尝试将以下
lib
部分添加到tsconfig.json
文件中
{
"compilerOptions": {
"lib": [
"es2016",
"dom"
]
}
}
测试的附加答案
如果使用mocha,还需要使用jsdom
向mocha介绍DOM环境
因此,您的“测试”脚本将添加-r jsdom global/register
:
{
"scripts": {
"test": "mocha test -r ts-node/register -r jsdom-global/register test/**/*.ts && npm run build"
}
}
npm run script build
您是否尝试过此命令?@Smit,是的,这是导致编译时间类型错误的命令请验证,谢谢!虽然我使用了es6
而不是es2016
。奇怪的是,我需要这样做,因为我的node\u modules
目录中有该类型。目前这是正确的解决方案,但请注意这一点。如果使用未在该文件中定义的变量“event”,则生成不会失败,因为lib.dom.d.ts正在声明“event”以及许多其他非常常见的变量名。
{
"scripts": {
"test": "mocha test -r ts-node/register -r jsdom-global/register test/**/*.ts && npm run build"
}
}