函数返回点不一致的JavaScript

函数返回点不一致的JavaScript,javascript,phpstorm,Javascript,Phpstorm,假设我有一门课: function Point(x,y){ var _x=x,_y=y; this.x = function(newX){ if (typeof newX !== 'undefined') { //function x() working as a setter _x=newX; } else { //function x() working as a getter return _x; }

假设我有一门课:

function Point(x,y){
  var _x=x,_y=y;
  this.x = function(newX){
    if (typeof newX !== 'undefined') {
      //function x() working as a setter
      _x=newX;
    }
    else {
      //function x() working as a getter
      return _x;
    }
  }
}
PHPStorm抱怨函数(x())的返回点不一致。我发现添加
返回undefined紧跟在
\ux=newX之后解决了哀鸣,代码如下所示

function Point(x,y){
  var _x=x,_y=y;
  this.x = function(newX){
    if (typeof newX !== 'undefined') {
      //function x() working as a setter
      _x=newX;
      return undefined;
    }
    else {
      //function x() working as a getter
      return _x;
    }
  }
}

问题是:有没有办法让PHPStorm停止抱怨这个问题?

您可以仅抑制此函数的警告,如:

//noinspection FunctionWithInconsistentReturnsJS
    this.x = function(newX){
...
}

另一个选项是正确地注释方法的返回类型,以便PhpStorm知道在某些情况下函数应该返回
undefined

/**
 * @param {number} [newX]
 * @returns {number|undefined}
 */
this.x = function(newX) {
    // ...
}

哦,天哪,是的,这太烦人了。通常,当喷气式飞机的IDE抱怨某事时,您可以将其关闭。单击警告,您将看到该选项。也就是说,在你的情况下,如果
,你可以反转
,流量控制将保持不变。@BenjaminGruenbaum,我知道。这里的代码只是一个简单的示例(反转IF语句会给出相同的警告),但是让IDE对此进行抱怨是非常烦人的,特别是对于大型项目。我不喜欢禁用它的想法,因为有时候,如果函数没有返回正确的数据,发出警告会变得很方便,我最终会将其设置为通知的信息类型,但我可能会忽略一些真正的问题:(谢谢!这正是我想要的。我认为这绝对是正确的方法。不幸的是,它不适用于PHP代码。它仍然抱怨注释“@return array | void”.有人有什么想法吗?这是我一直在做的事情,这个解决方案的问题是它实际上禁用了对函数的检查。正如@ndm发布的,添加jsDoc{some_type | undefined}(作为“undefined”的关键部分)是一种方法(至少对我来说)。