【问题标题】:"Duplicate identifier" errors with Angular2 and TSDAngular2 和 TSD 的“重复标识符”错误
【发布时间】:2016-03-16 09:31:09
【问题描述】:

我正在尝试将项目从 Angular 1 转换为 Angular 2。

这是一个带有一些通用代码的客户端和服务器项目(所以我将它们放在一起)。我想在客户端使用 Angular 2,所以我遵循了ng2 QuickStart。我目前正在尝试在我的项目中构建它。

我正在使用TSD 来管理我的依赖项类型。其中一些依赖项,如socket.io 依赖于node.d.ts。 我的问题是angular2 已经暴露了node.d.ts 并创建了环境定义,所以当我想将TSDangular2 一起使用时,这两个定义之间存在冲突: typings\node\node.d.ts(961,9): error TS2300: Duplicate identifier 'path'.

这是我的 gulp 任务:

gulp.task('build.conflict', function(){

  var browserProject = tsc.createProject('browser.tsconfig.json', {
    typescript: typescript
  });

  var src = [
    'src/browser/**/*.ts',
    'typings/**/*.d.ts' // commenting out this line results in unknown modules
  ];

  var result = gulp.src(src)
    .pipe(tsc(browserProject));

  return result.js
    .pipe(gulp.dest('build/browser'));

});

我还设置了a simple repository 来演示我的问题。 如何在保持TSD 输入的同时解决此错误。 (最好的办法是防止angular2暴露其内部node.d.ts

【问题讨论】:

  • 好的,所以我刚刚发现了Typings 并且能够设置一个快速修复。一旦它更稳定,我会发布答案。
  • 所以我认为它从未变得更稳定?
  • 仍在等待官方修复。 Angular 的 Github 上存在一些未解决的问题,而 TS 目前似乎正在使用 Typings,所以我希望我们能尽快得到一个可靠的解决方案。
  • 快速修复会很酷:)

标签: angularjs node.js typescript angular tsd


【解决方案1】:

如果您开始使用 Typings,则只能允许从 tsconfig.json 中的浏览器依赖项中发现 *.d.tsHere 是 John Papa 的 NgConf 演示中的一个很好的例子。

更新:根据 Typings > 1.0.0,这已过时。

【讨论】:

  • 感谢您提醒我这个问题。我实际上成为了打字贡献者:实际上,自 1.0.0 版以来,您的答案似乎已经过时了新结构->您应该只添加整个打字目录
  • 太棒了,感谢您的提醒!我添加了通知。
猜你喜欢
  • 2016-10-20
  • 2016-03-15
  • 1970-01-01
  • 2016-08-08
  • 2018-11-09
  • 1970-01-01
  • 2019-02-18
  • 2018-06-01
相关资源
最近更新 更多