【问题标题】:How to properly comment JavaScript function which belongs to an object in PhpStorm如何正确注释属于 PhpStorm 中对象的 JavaScript 函数
【发布时间】:2018-04-06 01:30:42
【问题描述】:

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

由于MyClassMyClass2 注册到类对象中,我需要使用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>

【问题讨论】:

  • @exports classes.MyClass 似乎解决了这个问题,但任何相关建议都将不胜感激。

标签: javascript phpstorm webstorm jsdoc


【解决方案1】:

@memberOf 似乎在做这件事:

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

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

    return MyClass;
});

【讨论】:

  • 谢谢,您认为\@memberOf classes 或\@exports classes.MyClass 哪个更好
  • @exports 通常用于记录模块 (usejsdoc.org/tags-exports.html)...无论如何,如果它适合你就很好:)
  • 我只是在寻找合适的解决方案,看起来你比我更有经验,所以@memberOf 可能是要走的路:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-18
  • 2013-01-01
  • 2014-04-11
  • 1970-01-01
  • 2020-11-29
  • 2012-05-29
相关资源
最近更新 更多