Webstorm、TypeScript、Angular2、Transpiler、重复标识符错误消息
Posted
技术标签:
【中文标题】Webstorm、TypeScript、Angular2、Transpiler、重复标识符错误消息【英文标题】:Webstorm, TypeScript, Angular2, Transpiler, Duplicate Identifier error messages 【发布时间】:2016-03-15 21:34:15 【问题描述】:操作系统:Windows Pro 10 Webstorm:ver 11.0.1 AngularJS:ver 2.0.0-alpha.46
WebStorm 设置
工具 - 文件观察器:Babal
语言和框架 – javascript: JavaScript 语言版本:ECMAScript 6
语言和框架 – TypeScript:启用 TypeScript 编译器(选中):使用 tsconfig.json(选中)
项目结构:
- bin
- node_modules/angular2
- src/tsconfig.json
- package.json
Package.json
"name": "TypeScripthtmlApp2",
"version": "1.0.0",
"dependencies":
"angular2": "2.0.0-alpha.46",
"es6-shim": "^0.33.13",
"systemjs": "0.19.6"
,
"devDependencies":
"babel-preset-es2015": "^6.3.13"
tsconfig.json
"compilerOptions":
"target": "es6",
"module": "commonjs",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
,
"exclude": [
"node_modules"
]
注意:webstorm 项目窗口中的 node_modules 文件夹,也已设置为“排除”。
所以 webstorm 抛出以下重复标识符错误消息:
C:\Program Files (x86)\JetBrains\WebStorm 11.0.1\plugins\JavaScriptLanguage\typescriptCompiler\external\lib.es6.d.ts
Error:(3841, 14) TS2300: Duplicate identifier 'PropertyKey'.
Error:(4034, 5) TS2300: Duplicate identifier 'EPSILON'.
Error:(4069, 5) TS2300: Duplicate identifier 'MAX_SAFE_INTEGER'.
Error:(4076, 5) TS2300: Duplicate identifier 'MIN_SAFE_INTEGER'.
Error:(4362, 5) TS2300: Duplicate identifier 'done'.
Error:(4363, 5) TS2300: Duplicate identifier 'value'.
Error:(4592, 5) TS2300: Duplicate identifier 'flags'.
Error:(4620, 5) TS2300: Duplicate identifier 'size'.
Error:(4630, 5) TS2300: Duplicate identifier 'prototype'.
Error:(4647, 5) TS2300: Duplicate identifier 'prototype'.
Error:(4659, 5) TS2300: Duplicate identifier 'size'.
Error:(4669, 5) TS2300: Duplicate identifier 'prototype'.
Error:(4685, 5) TS2300: Duplicate identifier 'prototype'.
Error:(5072, 5) TS2300: Duplicate identifier 'prototype'.
C:\Users\Theo\Documents\WebStorm\Projects\TypeScriptHTMLApp2\TypeScriptHTMLApp2\node_modules\angular2\typings\es6-shim\es6-shim.d.ts
Error:(6, 14) TS2300: Duplicate identifier 'PropertyKey'.
Error:(9, 5) TS2300: Duplicate identifier 'done'.
Error:(10, 5) TS2300: Duplicate identifier 'value'.
Error:(248, 5) TS2300: Duplicate identifier 'EPSILON'.
Error:(283, 5) TS2300: Duplicate identifier 'MAX_SAFE_INTEGER'.
Error:(290, 5) TS2300: Duplicate identifier 'MIN_SAFE_INTEGER'.
Error:(346, 5) TS2300: Duplicate identifier 'flags'.
Error:(498, 5) TS2300: Duplicate identifier 'prototype'.
Error:(561, 5) TS2300: Duplicate identifier 'size'.
Error:(570, 5) TS2300: Duplicate identifier 'prototype'.
Error:(581, 5) TS2300: Duplicate identifier 'size'.
Error:(590, 5) TS2300: Duplicate identifier 'prototype'.
Error:(605, 5) TS2300: Duplicate identifier 'prototype'.
Error:(619, 5) TS2300: Duplicate identifier 'prototype'.
我该如何解决这个问题?
在此先感谢
【问题讨论】:
***.com/questions/31322525/… ...这只是猜测可能是什么问题。 你是否同时使用 Babel 和 Typescript?大概就是这个错误吧!您不需要 Babel,只需在 tsconfig 中将“ES5”设置为目标 @Hitmands 自从我升级到 webstorm 11.0.2 后,这个问题已经得到解决。最初我也有同样的想法,但这是一种合法的做法。这样做,我的项目从最初的 .ts 文件生成 .js、.js.map、compiled.js 和compiled.js.map 文件。有关使用 typescript 和 babel 编译器的信息,请参阅以下文章:[link]dev.ivogabe.com/combine-typescript-with-babel 这是我用来使用 babel 设置 webstorm 的初始文档:[link]blog.jetbrains.com/webstorm/2015/05/… 嘿@TheoG,我真的更喜欢将IDE用作管理项目(编码,ecc ...)的平台,但是,对于构建过程,我使用webpack,gulp和这些工具,因为我需要即使在部署阶段也能执行构建:) 【参考方案1】:当两个文件都在编辑器中打开时会发生这种情况。如果您关闭其中一个文件,错误就会消失...
看这里:Webstorm marks duplicate identifier error for variables from separate files
【讨论】:
不幸的是,它也可能发生在该范围之外。一个相同的症状并不意味着问题是相同的以上是关于Webstorm、TypeScript、Angular2、Transpiler、重复标识符错误消息的主要内容,如果未能解决你的问题,请参考以下文章
Webstorm、TypeScript、Angular2、Transpiler、重复标识符错误消息
WebStorm / PhpStorm在TypeScript自动导入中引用双引号
typescript FirstOne 概论学习路线搭建 webstorm 开发环境预览
Webstorm- Nodemon + Typescript + Docker - 调试器已连接但断点不起作用
Visual Studio 与 WebStorm 中的 Typescript 编译 - 两者都使用 Node.js 进行编译吗?