如何正确评论属于PhpStorm中对象的JavaScript函数

时间:2018-04-05 12:47:23

标签: javascript phpstorm webstorm jsdoc

我有一个简单的JavaScript依赖加载器库。 define函数将类定义到具有给定名称和require函数的classes对象中,确保在满足依赖项时运行指定的代码。

MyClassMyClass2注册到classes对象中时,我需要使用classes.MyClassclasses.MyClass2访问它们。我想对MyClass和MyClass2发表评论告诉PhpStorm在哪里寻找这些。目前我得到“Unresolved type MyClass”

PhpStorm

我有没有办法用JSDoc正确评论这种情况?

var classes = {},
    _loaded = {};

function define(name, callback) {
    classes[name] = callback(jQuery);
    if (typeof _loaded[name] === 'undefined') {
        _loaded[name] = jQuery.Deferred();
    }

    _loaded[name].resolve();
}

function require(name, callback) {
    if (typeof _loaded[name] === 'undefined') {
        _loaded[name] = jQuery.Deferred();
    }

    _loaded[name].done(callback);
}


define('MyClass', function($) {
    function MyClass() {}

    MyClass.prototype.hello = function() {
        $('body').html('Hello')
    };

    return MyClass;
});

setTimeout(function() {
    define('MyClass2', function($) {
        function MyClass2() {}

        MyClass2.prototype.hello = function() {
            $('body').html('Hello MyClass2')
        };

        return MyClass2;
    });
}, 4000);


require('MyClass', function() {
    var a = new classes.MyClass();
    a.hello();
});

require('MyClass2', function() {
    var b = new classes.MyClass2();
    b.hello();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

1 个答案:

答案 0 :(得分:1)

@memberOf似乎做了这件事:

define('MyClass', function($) {
  /**
   *
   * @memberOf classes
   */
  function MyClass() {}

    MyClass.prototype.hello = function() {
        $('body').html('Hello')
    };

    return MyClass;
});

enter image description here