我喜欢 Hedger Wang 在他的帖子“使用闭包编译器编码更好的面向对象的 JavaScript”中提出的想法http://calendar.perfplanet.com/2010/coding-better-object-oriented-javascript-with-closure-compiler/,但他的示例并没有涵盖所有内容,并且有些示例似乎使用了与其他示例不同的样式。我一直在网上搜索特定问题的解决方案,并找到了一些解决方案,但每个解决方案似乎都与难题的其他部分不兼容。
任何人都可以提供一个完整的工作示例,同时涵盖以下所有内容:
- 使用带有高级优化的 Google 闭包编译器
- 使用注解,包括@type、@constructor、@enum...
- 使用外部库的 externs 文件(例如 jQuery)
- 导出用户定义的库“类”及其所有“公共函数”(并包括此类的 externs 文件)
- 在自己的文件中有另一个“类”,它使用该库而无需重新编译该库
- 避免现在和未来的命名冲突(命名空间?)
- 尽可能避免全局变量(每个文件 1 个对我来说似乎是一个合理的目标。全局名称可以出现多次 - 我不介意每个文件进行一次搜索和替换,但我不想做多个这样的操作)
- 包括用于编译整个内容的命令行
- 没有错误或警告
- 继承,接口,......的例子会很好,但我现在可以没有这些
好的,我知道这有点像一个列表,这就是为什么我无法让所有东西协同工作,但在我看来,这似乎是大中型项目的基本要求。我会继续用头撞墙一段时间,但如果有人已经做过这样的项目,我将永远感激不尽。