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,它正在抑制警告,这就是我需要的。