函数返回点不一致的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”的关键部分)是一种方法(至少对我来说)。