我可以告诉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);
}