Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS:方法表达式不是函数类型_Angularjs_Phpstorm_Webstorm_Jsdoc_Jetbrains Ide - Fatal编程技术网

AngularJS:方法表达式不是函数类型

AngularJS:方法表达式不是函数类型,angularjs,phpstorm,webstorm,jsdoc,jetbrains-ide,Angularjs,Phpstorm,Webstorm,Jsdoc,Jetbrains Ide,具有定义为: angular.module('trip') /** @class MyClass */ .factory('MyClass', [Factory]); function Factory() { return function(){ // fields & functions } } 然后在代码中,我将实例化一个新对象: /** * @param {MyClass} MyClass */ function

具有定义为:

angular.module('trip')
        /** @class MyClass */
        .factory('MyClass', [Factory]);

function Factory() {
   return function(){
         // fields & functions
   }
}
然后在代码中,我将实例化一个新对象:

/**
 * @param {MyClass} MyClass
 */
function(MyClass){
   var myClass = new MyClass(); // HERE MyClass is highlighted in phpStorm
}
调用
newmyclass()时我的类在phpStorm中突出显示,我得到以下警告:

方法表达式不是函数类型

这是什么意思?如何摆脱它?

WebStorm(以及其他工具)将
/**param{MyClass}MyClass*/
理解为MyClass实例的声明。它说你不能实例化一个实例。我可能只建议将JSDoc更改为
/**@param{function():MyClass}MyClass*/
,以停止警告。JSDoc本身并没有提供更好的方式来表达工厂


另外,请看一看。

这里有一个非常类似的问题被问到,没有任何评论:
.factory('MyClass',factory)(无括号)?@Grahampsheath有括号是因为我们使用严格的DI。所以它没有改变任何东西。Thx@de1mar,它正在抑制警告,这就是我需要的。