1

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

谷歌关闭 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?

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

4

2 回答 2

2

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

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

于 2013-02-07T22:21:57.797 回答
2

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

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

于 2013-02-08T21:10:18.657 回答