在一个函数中抑制可疑代码

时间:2013-02-07 19:21:01

标签: javascript google-closure-compiler

我在一个函数中收到了一些可疑的代码警告。我想在该函数中禁止类型suspiciousCode的警告错误 - 而不是整个文件。

Google closure wiki告诉我使用@suppress {suspiciousCode},但这不起作用并给我另一个警告:JSC_PARSE_ERROR: Parse error. unknown @suppress parameter: suspiciousCode

重要的代码行:

/**
 * This is a function where type checking is disabled.
 * @suppress {suspiciousCode}
 */
(function(a,b){

这可能与包装功能有关吗?

编辑:

这些是我想要压制的错误代码:

  • JSC_SUSPICIOUS_SEMICOLON: If this if/for/while really shouldnt have a body, use {}
  • JSC_USELESS_CODE: Suspicious code. The result of the 'getprop' operator is not being used.
  • JSC_USELESS_CODE: Suspicious code. This code lacks side-effects. Is there a bug?

我已经检查了警告,他们正是我想要的。

2 个答案:

答案 0 :(得分:2)

我认为可疑代码不具有可抑制性,因为它表示语法正确但是许多常见代码错误的来源。例如,这里是与NaN进行比较的讨论:https://code.google.com/p/closure-compiler/issues/detail?id=857。在你的情况下,编译器告诉你,如果你希望有一个空主体的for循环,使用一组空{}来表示这一点,因为它更清晰,不太可能是无意的。

uselessCode诊断组将禁止两个“JSC_USELESS_CODE”警告。通常,编译器假定getprop调用没有副作用,因此如果您不使用该值,它将发出警告。情况并非总是如此,因此它无法删除代码,而是会向您发出警告。

答案 1 :(得分:2)

这是一个疏忽,它将在下一个版本中修复。您可以通过从源代码构建来获取它。以下是将其添加到可用于抑制的诊断组列表中的更改:

https://code.google.com/p/closure-compiler/source/diff?spec=svn155a2e434bde40d325bbc92cdbe988ece4582e2c&r=155a2e434bde40d325bbc92cdbe988ece4582e2c&format=side&path=/src/com/google/javascript/jscomp/parsing/ParserConfig.properties