我已经阅读了这个问题的一堆答案,并且自己也尝试了一些不同的变体,但到目前为止,我还没有找到任何让 WebStorm 满意的东西。有问题的代码如下所示:
var slice = Array.prototype.slice;
/**
* @param {function} func The original function.
* @param {...*} args Bound argument values.
* @returns {function} The partially applied function
*/
function partial(func /* args */) {
var args = slice.call(arguments, 1);
return function() {
return func.apply(this, args.concat(slice.call(arguments)));
};
}
上面的代码触发警告说“JSDoc 中描述的参数 args 没有出现在函数签名中”。在 WebStorm 内部,它们有一些类似注释的 JS 文件,以支持诸如 Function.prototype.call 之类的自动完成,但这些文件仅用作库。因此,他们可以在他们的签名中包含任何内容,因此他们只需为此添加一个额外的参数(在这种情况下将是“args”)。不过,在常规代码中,这并不是一个真正的选择。
WebStorm 是否可以毫无怨言地接受这种语法的任何形式,或者这只是一个错误/缺失的功能?