13得票1回答
为什么Closure编译器会重命名外部类型的属性?

我把这段代码放在一个外部文件中:/** @typedef {{english: string, spanish: string}} */ var SpanishNoun; 然后我有JavaScript:/** * @param {SpanishNoun} n */ exp1.proces...

13得票3回答
如何为Google Closure Compiler自动生成外部声明文件?

假设您正在使用几个外部库依赖项的javascript项目,并希望使用Google Closure Compiler在ADVANCED_OPTIMIZATIONS模式下编译源代码。 由于在此模式下,编译器将重命名对外部库对象和函数的调用,因此必须提供externs,以防止发生这种重命名。 但...

12得票4回答
让Closure Compiler去除日志函数的使用

我有一个日志API想要暴露给一些内部JS代码。我希望能够使用此API进行日志记录,但仅在进行调试构建时才能记录日志。目前,我已经部分地实现了它:它只会在调试构建时记录日志,但是当进行常规构建时,对此API的调用仍然存在于代码中。我希望在我使用 goog.DEBUG = false 进行编译时,...

12得票2回答
如何在Closure Compiler中将node_modules定义为外部模块?

我有一个Node.js项目,想要使用Closure Compiler进行编译。我不想在浏览器中运行/使用browserify。我主要想要类型检查的效用。我最初使用以下方式使编译器正常工作:java -jar compiler.jar -W VERBOSE ...

12得票6回答
等式中操作数的顺序是否重要?(例如,1 == x与x == 1相比)

我正在尝试使用Google Closure编译器,并注意到它会将所有相等参数切换,以便变量始终位于比较的右侧。 现在,例如,typeof XMLHttpRequest=="undefined"就变成了"undefined"==typeof XMLHttpRequest,而if(null!==...

11得票3回答
谷歌闭包编译器和JSON

我有一个Json字符串,我解析它并使用点号符号访问对象的属性。然而,在谷歌闭包编译器中,点号符号(MyObject.PropertyName)会出现未定义属性的警告。 目前,我使用的解决方法是将我的代码转换为方括号符号表示法(MyObject['PropertyName'])。这消除了警告,...

11得票1回答
谷歌闭包编译器和jQuery

我将我的 js 代码复制粘贴到谷歌编译器中,但当我把它复制回我的应用程序时,它无法工作。我意识到我的代码需要jquery,所以我将jquery代码和我的代码一起复制到谷歌编译器中,希望它可以轻松解决问题,但仍然不起作用。 在Chrome浏览器中,在文档准备好的函数(document read...

11得票4回答
谷歌闭包编译器100%类型化

如何让我的应用程序在Google Closure编译器中达到100%的类型化? 我已经使用JSdoc注释标记了所有内容。是否可能实现100%的类型化?目前仅为64.6%。

11得票4回答
JavaScript "编译器"

最近我发现了一个很酷的东西,叫做Google Closure Compiler。是否有类似的替代品,可以提供静态类型语言编译所带来的好处? 更新 这不是关于真正的编译器,而是关于JavaScript-JavaScript翻译器,它们提供类型验证等功能、优化和可能的压缩。

10得票2回答
如何让Closure Compiler在调用函数时不再抱怨联合类型?

我在使用jQuery-1.4.3 externs文件时特别注意到了这一点。该文件的javadoc如下:/** * @param {(string|number|function(number,number))=} arg1 * @return {(number|jQueryObject)}...