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自动导入中引用双引号

用WebStorm开发TypeScript

typescript FirstOne 概论学习路线搭建 webstorm 开发环境预览

Webstorm- Nodemon + Typescript + Docker - 调试器已连接但断点不起作用

Visual Studio 与 WebStorm 中的 Typescript 编译 - 两者都使用 Node.js 进行编译吗?