我花了半个小时找到这个问题的答案。将它和答案一起发布在这里,希望能节省半个小时。
编译此代码时
"use strict";
/**
* These are the flower and the instrument used in the code below.
*/
var flower, instrument;
Closure Compiler给了我们这个警告
JSC_MULTIPLE_VAR_DEF: declaration of multiple variables with shared type information at line 6 character 0
var flower, instrument;
^
这个含糊的警告是什么意思?
答案 0 :(得分:5)
您应该为此提交错误: http://code.google.com/p/closure-compiler/issues/list
如果您使用@type,它应该只会抱怨。即使这样,我也不清楚这是否合适。看起来我应该能够做到这一点:
/** @type {string} */
var a,b,c; // all strings
答案 1 :(得分:3)
这可能是Closure Compiler的一个错误。它假设您在以/ **开头的注释中使用@type,即使您没有。
可以通过将注释标记从/ **更改为/ *来解除警告。 E.g。
"use strict";
/*
* These are the flower and the instrument used in the code below.
*/
var flower, instrument;
答案 2 :(得分:1)
Closure Compiler允许您在注释中定义变量的类型信息。像这样:
/**
* The amount of beats in each minute.
* @type {number}
*/
var bpm = 89;
即使示例中的注释不包含任何类型信息,编译器也会抱怨如果存在这样的类型信息,它只会用于第一个变量( flower )和不是第二个(乐器。)