Javascript JSC_非函数型google闭包编译器
有没有办法摆脱这个警告 JSC_NOT_函数_类型表达式不可调用 在用google闭包编译器打包javascript时Javascript JSC_非函数型google闭包编译器,javascript,javascript-framework,google-closure-compiler,google-closure,Javascript,Javascript Framework,Google Closure Compiler,Google Closure,有没有办法摆脱这个警告 JSC_NOT_函数_类型表达式不可调用 在用google闭包编译器打包javascript时 var require = function(){}; var a=typeof require=="function"&& require; function hello(name) { var x = 2; alert(a(x)); alert('Hello, ' + name); } hello('User X'); 运行闭包编
var require = function(){};
var a=typeof require=="function"&& require;
function hello(name) {
var x = 2;
alert(a(x));
alert('Hello, ' + name);
}
hello('User X');
运行闭包编译器的联机帮助工具:问题在于,如果
require
不是函数,则a
可能不是函数:
var a=typeof require=="function"&& require;
相反,您可以使用
var a=typeof require=="function" ? require : function(){};
谢谢@Oriol。问题是我不能(不想)更改代码。这部分(var a=typeof require==“function”&&require;)是通过运行browserify生成的代码。@sbr如果您不能更改代码,我认为您无能为力。忽略警告。也许有一种方法可以指定关闭选项来忽略它。@sbr是的,我刚刚找到它:
@warning\u level quiet
。当然,请参见@sbr。如果你想得到所有的警告,但这一个,只是忽略它。无论如何,我不认为这是一种“普通风格”:检查它是否是函数有什么意义,如果不是,用false
来代替?当试图调用它时,它也会抛出一个错误。