为什么静态方法无法在JSDoc中正确排序,并且有修复程序?

时间:2018-10-24 02:04:05

标签: javascript documentation jsdoc

尽管对JSDoc来说是新手,但我得到了我想要的95%的东西,因此,并不是太破旧。但是,我有一个真正的症结所在:我的 static 类方法未在HTML输出中按字母顺序排序。这是NodeJS中使用的CommonJS模块。

是的,我正在使用配置文件,是的,我打开了“排序”,是的,我已经证明排序正在正在执行某事

// jsdoc.config.js
'use strict';
module.exports = {
    source: {
      include: ['src/delme.js', 'README.md']
    },
    sourceType: 'module',
    plugins: ['plugins/markdown'],
    opts: {
      encoding: 'utf8',
      destination: 'docs',
      recurse: false,
      sort: true
    }
};

// module.js
/**
 * This CommonJS module exposes a main Account class 
 * @module AccountModule
 * @see module:AccountModule
 */

/**
 * @memberof module:AccountModule
 */
class Account {

  /** should be the third method, but its actually the fourth */
  ccc() {}

  /** should be the second method, but its actually the third */
  bbb() {}

  /**
   * should be the first method, but its actually the second.
   * CHANGE THIS METHOD TO 'STATIC' AND IT GOES TO THE TOP OF THE ORDER
   */
  aaa() {}

  /** should be the fourth method, BUT IT IS FIRST!! */
  static async exists() {}

}

module.exports = {Account};

我说排序是有效的,因为我有意颠倒了代码中的方法,但是在{{1} } 方法。不幸的是,exists方法而不是exists排在列表的顶部。上面的代码在HTML文档中产生aaaexistsaaabbb的顺序。因此,当排序正在进行 something 时,还不是100%正确。

现在,ccc方法与其他三种方法之间显然存在两个区别。 exists方法同时声明为existsasync。因此,我反复尝试了一下,看看是否可以将static放在列表的顶部,并发现aaa声明没有任何作用。但是,有async声明。如果我将static添加到static类中,则顺序将变为aaaaaaexistsbbb

所以我的问题是双重的:1)有人可以解释为什么ccc方法被不同地排序,以及2)有没有一种方法可以得到我需要的行为,即按名称对所有方法进行排序而无需关于任何异步或静态声明? 一如既往地谢谢您!

0 个答案:

没有答案