将课程定义为:
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();
时,phpStorm中突出显示 MyClass ,我收到此警告:
方法表达式不是函数类型
这是什么意思?如何摆脱它?
答案 0 :(得分:6)
WebStorm(以及其他工具)将/** @param {MyClass} MyClass */
理解为MyClass实例的声明。它说你无法实例化一个实例。我可能只建议将JSDoc更改为/** @param {function():MyClass} MyClass */
以停止警告。 JSDoc本身并没有提供更好的表达工厂的方式。