2

我绝对是 JSDoc 和类似 Javadoc 的约定的新手;我正在寻找一些容易实现的目标来启动和运行,但我做不到了。

我的代码是这样组织的,主要是个人风格:

var app = app || {};

app.ui = {
  someUIfunction: function() {},
  someUIparams: {},
  anotherFunction: function(string, object) {}
}

app.rest = {
  someRESTCall: function(url,data) {},
  someRESTparams: {},
  moreRESTCall: function(url,data) {}
}

从理论上讲,一切都可能只是“应用程序”下的一个整体对象,但我喜欢单独分解下一级对象,以便在 IDE 中方便地进行冷折叠和搜索。另外,这样对我来说感觉很整洁。

我无法做到的是深入研究第三级功能和对象。JSDoc3 似乎不想为我呈现它;此外,我不喜欢将“应用程序”(或者我最后给应用程序的任何内容)作为名称空间的起始页面......我希望它的成员也可以在索引中。这是我的尝试(原谅愚蠢的例子!):

/**
 * Application Namespace for this marvellous application
 * 
 * @namespace app
 */
var app = app || {};

/**
 * An object containing methods and parameters used for UI presentation logic
 * 
 * @type {object}
 * @memberOf app
 * @property {string} title - a string used as the title of the UI
 * @property {function} init - a function to initialize the UI
 */
app.ui = {
  // not bothering to document this for whatever reason
  title: "some title",
  /**
   * @memberOf app.ui
   * @params {object} params - an object containing necessary initialization parameters
   */
  init: function(params) {
    // some initialization logic
  }
}

有两个问题:

  1. 理想情况下,我希望 app.ui 拥有自己的页面。@namespace 是正确的方法吗?它可以工作,但在视觉上它在索引中伪装成与应用程序本身处于同一级别。

  2. app.ui.init 根本没有记录。

在我看来(诚然,这可能只是无知!)如果我使用 JSDoc3 会更开心:

app.ui.init = function() {} // (etc)

但就我而言,这将是相当丑陋的。我需要用来指示嵌套成员的任何语法指针都是我所追求的。

4

0 回答 0