如何正确注释属于 PhpStorm 中的对象的 JavaScript 函数

How to properly comment JavaScript function which belongs to an object in PhpStorm

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

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

有没有办法用 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>

@memberOf 似乎在做这件事:

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

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

    return MyClass;
});