Angular2 和 TSD 的“重复标识符”错误
Posted
技术标签:
【中文标题】Angular2 和 TSD 的“重复标识符”错误【英文标题】:"Duplicate identifier" errors with Angular2 and 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
并创建了环境定义,所以当我想将TSD
与angular2
一起使用时,这两个定义之间存在冲突:
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,所以我希望我们能尽快得到一个可靠的解决方案。 快速修复会很酷:) 【参考方案1】:如果您开始使用 Typings,则只能允许从 tsconfig.json
中的浏览器依赖项中发现 *.d.ts
。 Here 是 John Papa 的 NgConf 演示中的一个很好的例子。
更新:根据 Typings > 1.0.0,这已过时。
【讨论】:
感谢您提醒我这个问题。我实际上成为了打字贡献者:实际上,自 1.0.0 版以来,您的答案似乎已经过时了新结构->您应该只添加整个打字目录 太棒了,感谢您的提醒!我添加了通知。以上是关于Angular2 和 TSD 的“重复标识符”错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 Visual Studio 2008 数据库项目 GDR2 时出现“模型已有元素”错误 (TSD04105)