JsDoc + Backbone + CommonJS + WebStorm。无法从Facade解析对类构造函数的引用

时间:2014-01-19 01:16:39

标签: node.js backbone.js webstorm jsdoc commonjs

如何强制JsDoc将参数视为类构造函数的引用?

嗨!我正努力为我的图书馆制作JsDoc,但我必须在这里找到一些东西。我记录了我的部分库(在这个例子中,是“Relation”类)。图书馆的外观是“Rajs”课程。它包含一个包含对Reference类的引用的参数。当我在另一个文件中需要“Rajs”时,我希望能够访问jsDoc文档。但它只是不承认这一点。

我正在使用WebStorm。

在这个文件中,我定义了一个名为“Relation”的类

relation.js - “记录”类

// File relation.js
//-----------------  
var Backbone = require('backbone');

var Relation = Backbone.Model.extend(
  /** @lends Relation.prototype*/
  {

    /**
     * @class Relation
     * @augments Backbone.Model
     * @constructor
     */
  initialize : function(){
    // Initialization ...
  }

});
module.exports = Relation;

在这里,这是我图书馆的正面。应该通过“Rajs”访问所有内容,防止用户必须要求我的库的每个部分。 Rajs将需要一切,用户只需要Rajs。

rajs.js - Facade

// File rajs.js
//--------------
var Backbone = require('backbone');
var Relation = require('./relation');

var Rajs = Backbone.Model.extend( /** @lends Rajs.prototype */
  {
    /**
     * @class Rajs
     * @augments Backbone.Model
     * @constructor
    */
    initialize : function(){
      // Initialization ...
      this.Relation = Relation;
    }
});
Module.exports = Rajs;

这将是最终用户。他需要('rajs')并且应该可以访问整个库而不必要求('rajs-x'),('rajs-y'),('rajs-z')...它实际上有效,但我想为用户提供JsDoc自动完成功能。

这里,在app.js中,用户需要核心但无法访问Relation.js的jsDoc。为什么会这样?

app.js - 最终用户文件

// File app.js
//------------
var Rajs = require('./rajs');
var rajs = new Rajs();
var relation = new rajs.Relation(); //Here, jsDoc does not recognize core.Relation as being of class Relation. Instead, it sees it like a property if Rajs

![无法识别Relation.js方法和属性] [1]

感谢您的帮助!

0 个答案:

没有答案