抑制"无法实例化非构造函数"警告

时间:2017-06-16 09:15:30

标签: javascript google-closure-compiler

使用Closure Compiler,我收到警告:

  

无法实例化非构造函数

这只是一个警告,代码运行正常。不过,我讨厌警告,我知道这对应用程序没有任何影响。发生此警告的一些代码来自第三方库,但其中一些来自我自己的。

有没有办法只是压制这个警告?

2 个答案:

答案 0 :(得分:0)

您可以使用此选项:

--warnings_whitelist_file VAL          : A file containing warnings to
                                          suppress. Each line should be of the
                                          form
                                          <file-name>:<line-number>? 
                                          <warning-description> (default: )

这可能有助于抑制来自第三方代码的警告:

--hide_warnings_for VAL                : If specified, files whose path
                                          contains this string will have their
                                          warnings hidden. You may specify
                                          multiple.

还有:

--warning_level (-W) [QUIET | DEFAULT  : Specifies the warning level to use.
 | VERBOSE]                               Options: QUIET, DEFAULT, VERBOSE
                                          (default: DEFAULT)

要查看可用选项的完整列表,请执行以下命令:

java -jar ../closure-compiler/target/closure-compiler-1.0-SNAPSHOT.jar --help

但是请注意,您正在放弃Closure Compiler的一些好处,以便对代码进行类型检查。如果您提供有关错误的更多详细信息以及代码中的位置,我可能会建议在那里使用注释。

答案 1 :(得分:0)

对于您自己的代码,可以使用ES2015类语法,也可以向函数构造函数添加@constructor注释。这告诉编译器该函数是用new运算符调用的。

对于第三方代码,隐藏警告是您可以做的最好的事情。