打字稿重复标识符错误

Typescript Duplicate identifier error

当我尝试 运行 我的 angular-meteor 客户端(离子服务)时出现以下错误:

[00:29:20]  typescript: node_modules/meteor-typings/1.3/main.d.ts, line: 657 
            Duplicate identifier 'Status'. 

     L657:    type Status = 'connected' | 'connecting' | 'failed' | 'waiting' | 'offline';

[00:29:20]  typescript: node_modules/meteor-typings/1.3/main.d.ts, line: 695 
            Duplicate identifier 'Status'. 

     L695:      type Status = 'connected' | 'connecting' | 'failed' | 'waiting' | 'offline';

[00:29:20]  transpile failed 

源代码文件中的错误是:TS2300:Duplicate identifier 'Status'.

项目是使用本教程构建的:https://angular-meteor.com/tutorials/whatsapp2/ionic/setup 大多数文件与此处相同:https://github.com/Urigo/Ionic2CLI-Meteor-WhatsApp

Ionic Framework: 2.1.0
Ionic Native: 2.4.1
Ionic App Scripts: 1.1.3
Angular Core: 2.2.1
Angular Compiler CLI: 2.2.1
Node: 6.3.1
OS Platform: macOS Sierra
Navigator Platform: MacIntel
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36

您可以看到所有涉及的内容files in this codebase

知道发生了什么事吗?接下来要看哪里?我承认我有点失落。 我恢复了自上次运行以来的所有代码更改,并删除了 node_modules 并重新安装了项目要求。我仍然得到同样的错误,尽管据我所知没有任何改变。

感谢任何guidance/ideas。

我的 tsconfig 文件中有这个:

"types": [
  "meteor-typings",
  "@types/underscore"
]

我一删除 'meteor-typings',它就成功了!

"types": [
  "@types/underscore"
]

在我的 package.json 文件中我有:

  "devDependencies": {
    "@ionic/app-scripts": "1.1.3",
    "@types/meteor": "^1.3.32",
    "@types/underscore": "^1.7.36",
    "meteor-typings": "^1.3.1",
    "tmp": "0.0.31",
    "typescript": "2.0.9",
    "typescript-extends": "^1.0.1"
  },

不知何故,我猜它已经是转译过程的一部分,而 tsconfig 中的附加行使它看起来更是如此。 (这是我个人的猜测,我不知道为什么):)

FWIW 当我将 Ionic 从 2.0.0 更新到 2.2.0 时,我开始遇到这个问题。

修复对我有用,我有教程中的 tsconfig.json 文件:

"types": [
  "meteor-typings",
  "@types/underscore",
  "@types/meteor-accounts-phone",
  "@types/meteor-collection-hooks"
]

删除 "meteor-typings" 解决了问题。我不知道为什么。

所以我预计教程可能需要更新,因为有人更新到最新的 Ionic。我将 post 在他们的 github 回购中提出问题。

进一步澄清:在 api/tsconfig.json 中,您将 types[] 中的 "meteor-typings" 保持原样。在根文件夹中,您删除 types[] 中的附加 "meteor-typings" 然后它应该 运行 没有错误。不要忘记将软链接添加到 api 文件夹内的 node_modules。

对于 windows 用户,这是通过以下方式完成的:

mklink /d \node_modules ..\node_modules

如教程中所述,api 文件夹中不应有 package.json。

感谢修复。