如何在jsdoc中的属性的默认值中写入空格

时间:2016-02-11 08:32:40

标签: javascript jsdoc jsdoc3

在JSDOC中记录属性默认值时,我找不到打印空间的方法。例: /** * @prop {string} str='String with space' - The string. */

这将记录为:

Name    Type      Default       Description
str     string    'String       with space' - The string

有任何建议如何正确吗?

2 个答案:

答案 0 :(得分:4)

至少从jsdoc 3.3.0开始,你可以这样做。

/**
 * @prop {string} [str=String with space] - The string.
 */

答案 1 :(得分:2)

我没有完全解决方案,但今天我遇到了同样的问题并找到了解决办法。 :)问题是,如果我们使用可选括号,当前的jsdoc解析器(和正则表达式)只能正确处理这个问题。在这种情况下,我们希望默认不是可选的。

在模板的publish.js内添加此项。我使用“ - ”作为分隔符,所以使这个工作,在你的描述上使用“ - ”,这将正确地对解析器进行后处理。

data().each(function(doclet) {
    if (doclet.properties) {
        doclet.properties = doclet.properties.map(function(property) {
            var separator = " - ",
                separatorLength = separator.length;

            var defaultvalue = property.defaultvalue;
            var description = property.description;

            if( property.defaultvalue !== 'undefined' && !property.optional && description.indexOf(separator) > 0) {
                var index = description.indexOf(separator);
                defaultvalue += " " + description.substr(separatorLength, index-separatorLength);
                description = "<p>" + description.substr(index + separatorLength, description.length);
            }

            return {
                defaultvalue: defaultvalue,
                description: description,
                type: property.type,
                name: property.name
            }  
        });                  
    }
});