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

AngularJS: Method expression is not of Function type

class 定义为:

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
}

调用 new MyClass(); 时,MyClass 在 phpStorm 中突出显示,我收到此警告:

Method expression is not of Function type

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

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

另外,请看一下https://youtrack.jetbrains.com/issue/WEB-17325