[英]ignore compiler warning from one file in Google Closure
我在一个相当大的Closure项目中使用外部库(Phonegap)。 不幸的是,Phonegap生成了一个吨编译器警告(所有“危险使用此”)。 足够它使搜索编译器输出警告我自己的代码非常烦人。
有没有办法让一个文件中的警告静音?
我猜你的意思是在使用VERBOSE或checkTypes时键入警告。
将以下内容放入任何文件中:
/**
* @fileoverview
* @suppress {checkTypes}
*/
仅关闭该文件的类型检查。 你也可以@suppress
许多其他的东西。 阅读Closure Compiler文档以获取更多详细信息。
但是,如果您正在谈论“危险使用此”警告,请不要忽视它们。 他们指的地方:
例如:
foo.bar.hello = "Hello World!";
foo.bar.baz = function() {
alert(this.hello);
};
foo.bar.baz(); // this --> foo.bar
“警报”声明将由编译器警告“危险使用此”进行标记。 为什么? 请记住,如果编译器展平 “foo.bar”命名空间:
$foo$bar$hello$ = "Hello World!";
$foo$bar$baz$ = function() { alert(this.$hello$); }
$foo$bar$baz$(); // this --> window
注意我在这里使用调试变量重命名。 实际上,“$ foo $ bar $ baz”可能只是重命名为“a”。
您可以立即看到对foo.bar.baz()
的调用将失败,因为“this”不再引用“foo.bar”,而是引用全局对象。 您的代码会因响亮的CRANK而崩溃!
现在,有些情况下使用“this”即可。 例如,在事件处理程序中。 “this”将自动指向引发该事件的DOM节点。
在这些情况下,您需要使用以下类型的JsDoc指令:
/** @this {Node} */
指定“this”的预期类型以关闭编译器。
应该有一个可以与ClosureCompiler.jar一起使用的--warning_level选项
VERBOSE,QUIET,DEFAULT是选项。
您应该使用QUIET单独编译PhoneGap。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.