我可以告诉IntelliJ(10.5)不要警告不要传递可选的javascript方法参数吗?
有没有办法记录我可以告诉IntelliJ(10.5)不要警告不要传递可选的javascript方法参数吗?,javascript,intellij-idea,code-analysis,Javascript,Intellij Idea,Code Analysis,有没有办法记录foo(),这样IntelliJ就不会对我大喊大叫了?你可以通过检查来更改JS的设置: “JavaScript>常规>签名不匹配问题”是一种检查设置,它将为您禁用错误数量的参数警告。不幸的是,它影响的不仅仅是参数计数。根据IntelliJ IDEA内部的描述,它“检查JavaScript调用的函数参数、返回值、指定表达式的类型是否正确。验证工作在JavaScript、html或jsp文件中。” 使用JavaDoc样式的JavaScript注释,可以将参数声明为可选参数,并在其周围加
foo()
,这样IntelliJ就不会对我大喊大叫了?你可以通过检查来更改JS的设置:
“JavaScript>常规>签名不匹配问题”是一种检查设置,它将为您禁用错误数量的参数警告。不幸的是,它影响的不仅仅是参数计数。根据IntelliJ IDEA内部的描述,它“检查JavaScript调用的函数参数、返回值、指定表达式的类型是否正确。验证工作在JavaScript、html或jsp文件中。”
使用JavaDoc样式的JavaScript注释,可以将参数声明为可选参数,并在其周围加上括号[]:
function foo(a, opt_b) {
opt_b = opt_b || 1;
...
}
foo(1); // IntelliJ will yell at me, saying "Invalid number of parameters, expected 2"
根据,有两种使用注释将参数声明为可选参数的方法:
/**
* My function
* @param [optionalParam] An optional parameter
*/
myFunction: function(optionalParam) {
//...
},
及
这两种方法对我都有效。除了切换到CoffeeScript,也就是参数太多的函数-这项检查不是关于一个有很多参数的函数
f(a,b,c,d,e)
,而不是关于调用函数和不传递可选参数吗?此设置处于禁用状态,因此它一定不是。我在想一些方法来记录一个可选的param.Nice解决方案,不过如果你使用Google的闭包编译器,那么你可能不想使用这个符号,因为它是不兼容的,IIRC。
/**
* @param {string} [somebody] - Somebody's name.
*/
function sayHello(somebody) {
if (!somebody) {
somebody = 'John Doe';
}
alert('Hello ' + somebody);
}
/**
* @param {string=} somebody - Somebody's name.
*/
function sayHello(somebody) {
if (!somebody) {
somebody = 'John Doe';
}
alert('Hello ' + somebody);
}