我有一个用webpack驱动的Angular 4项目。 我在项目中使用了TypeScript,并且我使用WebStorm作为IDE。
在我的代码中,我使用Set
没问题。
我想在单元测试中使用Set
来从模拟函数返回一个值。
当我尝试使用new Set(['A', 'B'])
时,我在WebStorm中看到错误:
Set仅指一种类型,但它被用作值
此错误来自TSLint(我假设)但是当我手动运行TSLint类时,我在Iterm中看不到相同的错误(所以我假设它是WebStorm,它不能识别Set)。
在WebStorm配置中,启用TSLint并查看tsconfig.json,这是tsconfig.json的compilerOptions
部分:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"sourceMap": true,
"noEmit": true,
"noEmitHelpers": true,
"importHelpers": true,
"strictNullChecks": false,
"lib": [
"es6",
"es2017",
"dom"
],
"typeRoots": [
"node_modules/@types"
],
"types": [
"hammerjs",
"jasmine",
"node",
"source-map",
"uglify-js",
"webpack"
],
},
}
知道为什么WebStorm抱怨(只在单元测试中)?
答案 0 :(得分:1)
我找到了一个解决方案,不确定它是不是很好但是我安装了@ types / es6-collections
npm install --save-dev @types/es6-collections
并将其添加到tsconfig.json中:
"types": [
"es6-collections",
"hammerjs",
"jasmine",
"node",
"source-map",
"uglify-js",
"webpack"
],
这为我删除了webstorm的错误