JSDoc、DocDash、@typedef 未出现在目录中

问题描述 投票:0回答:1

我正在尝试让我的目录列出每个模块的常量、函数和 typedef,从而允许搜索文档。 我将 DocDash 与 JSDoc 一起使用。 JSDoc 似乎可以很好地识别类型,但类型定义不会出现在目录中。

代码定义示例


/**
 * @typedef ActivityOptions
 * @memberof module:CardSession
 * @property {boolean} quiz ...yada yada...truncated.
 */

//Using JSON Schema compatible constant as the type definition.
export const ActivityOptions = {
    type: 'object',
    properties: {
        quiz: {type: 'boolean'},
        canSkip: {type: 'boolean'},
        repeat: {type: 'boolean'},
        timeLimit: {type:'number'},//in percent
        questionLimit: {type: 'number'},
        passingProps: PassingProps,
        prereq: {
            type: 'array',
            members: {type: 'string'}
        },
        completion: {
            type: 'array',
            members: {type: 'string'}
        },
        rules: EnumActivityRules
    },
    required: ['quiz','canSkip','repeat','passingProps','prereq','completion','rules'],
    additionalProperties: false
};

这是我的 jsdoc.json。 如果相关,可以提供完整文件,但这里仅是“docdash”成员。

{
    "docdash": {
        "static": true,
        "sort": true,
        "sectionOrder": [
            "Classes",
            "Tutorials",
            "Modules",
            "Externals",
            "Events",
            "Namespaces",
            "Mixins",
            "Interfaces"
        ],
        "disqus": "musicards.io",
        "search": true,
        "commonNav": false,
        "collapse": true,
        "wrap": false,
        "typedefs": true,
        "navLevel": 1,
        "private": true,
        "removeQuotes": "none",
        "scripts": [],
        "ShortenTypes": false,
        "scopeInOutputPath": true,
        "nameInOutputPath": true,
        "versionInOutputPath": true
  }
    
}

screenshot 在菜单上,typedef 正确地列在模块中,但它隐藏在所有函数下并且未显示在目录中。 此外,由于这个原因,快速搜索栏不会显示 typedef 作为结果。

screenshot

javascript documentation typedef jsdoc
1个回答
0
投票

如果您有全局 typedef(即不属于任何内容的类型定义),那么 docdash 会将它们列在“全局”部分中。 如果列出,则可以搜索它们。 但是,如果您的 typedef 是命名空间的成员,则 docdash cant 无法渲染它们。 这是因为 jsdoc 的

templateHelper.js
脚本的
getMembers
方法仅收集全局 typedef(请参阅https://github.com/jsdoc/jsdoc/blob/183910bb39d9cf252bc3a4421d144682301cffa5/packages/jsdoc-template-legacy/lib/templateHelper.js#L571-L574),而docdash只消耗
getMembers
的结果。

© www.soinside.com 2019 - 2024. All rights reserved.