【问题标题】:Webstorm, TypeScript, Angular2, Transpiler, Duplicate Identifier error messagesWebstorm、TypeScript、Angular2、Transpiler、重复标识符错误消息
【发布时间】:2016-03-15 21:34:15
【问题描述】:

操作系统:Windows Pro 10
Webstorm:ver 11.0.1
AngularJS:ver 2.0.0-alpha.46

WebStorm 设置

  1. 工具 - 文件观察器:Babal

  2. 语言和框架 – JavaScript:
    JavaScript 语言版本:ECMAScript 6

  3. 语言和框架 – 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'.

我该如何解决这个问题?

在此先感谢

【问题讨论】:

  • stackoverflow.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和这些工具,因为我需要即使在部署阶段也能执行构建:)

标签: typescript duplicates ecmascript-6 webstorm angular


【解决方案1】:

当两个文件都在编辑器中打开时会发生这种情况。如果您关闭其中一个文件,错误就会消失...

看这里:Webstorm marks duplicate identifier error for variables from separate files

【讨论】:

  • 不幸的是,它也可能发生在该范围之外。一个相同的症状并不意味着问题是相同的
猜你喜欢
  • 1970-01-01
  • 2016-08-08
  • 2016-10-20
  • 2018-06-01
  • 2019-02-18
  • 2016-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多