扁平化 TypeScript 类型或接口?
Flattening TypeScript typings or interfaces?
作为 TypeScript 开发人员,我已经习惯了在处理 .d.ts
文件时遇到 "Duplicate identifier" 问题。
最近,发生这种情况是因为我需要 Angular 2 的类型(.d.ts
文件)和 Parse。
Angular 2 不通过 DefinitelyTyped
分发他们的 .d.ts
文件,所以我不得不通过 NPM 获取 Angular 2,其中也包括源文件。
现在,Parse 的 .d.ts
个文件来自 DefinitelyTyped
。很好 - 到目前为止,还不错。
然后问题就出现了,因为这两个库都依赖于 Node JS 类型。 Parse 的 Node JS 类型位于 typings
文件夹中,而 Angular 2 的 Node JS 类型位于 node_modules/angular2
.
下的子文件夹中
这让我在编译时遇到大量重复标识符问题。
那么,大问题
- 我可以将
.d.ts
个文件拼合起来以使其不重复吗?
- 我能否以某种方式让 TypeScript 编译器忽略重复的接口定义?
没有官方工具可以压缩 .d.ts
文件或我所知道的任何其他文件。您的(或类似)问题有很多报告的问题:
- typings from angular2 conflict with project typings
- Type definition conflict with jQuery TSD
- Conflict between Mocha and Jasmine typings.
- Error on $ in angular-protractor.d.ts
Angular 团队是 working on the issue。
作为解决方法,我会简单地注释掉 ///<reference>
导致您出错的注释并等待错误修复。
作为 TypeScript 开发人员,我已经习惯了在处理 .d.ts
文件时遇到 "Duplicate identifier" 问题。
最近,发生这种情况是因为我需要 Angular 2 的类型(.d.ts
文件)和 Parse。
Angular 2 不通过 DefinitelyTyped
分发他们的 .d.ts
文件,所以我不得不通过 NPM 获取 Angular 2,其中也包括源文件。
现在,Parse 的 .d.ts
个文件来自 DefinitelyTyped
。很好 - 到目前为止,还不错。
然后问题就出现了,因为这两个库都依赖于 Node JS 类型。 Parse 的 Node JS 类型位于 typings
文件夹中,而 Angular 2 的 Node JS 类型位于 node_modules/angular2
.
这让我在编译时遇到大量重复标识符问题。
那么,大问题
- 我可以将
.d.ts
个文件拼合起来以使其不重复吗? - 我能否以某种方式让 TypeScript 编译器忽略重复的接口定义?
没有官方工具可以压缩 .d.ts
文件或我所知道的任何其他文件。您的(或类似)问题有很多报告的问题:
- typings from angular2 conflict with project typings
- Type definition conflict with jQuery TSD
- Conflict between Mocha and Jasmine typings.
- Error on $ in angular-protractor.d.ts
Angular 团队是 working on the issue。
作为解决方法,我会简单地注释掉 ///<reference>
导致您出错的注释并等待错误修复。