当前位置:  开发笔记 > 编程语言 > 正文

如何使用内联JSDoc指示param是可选的?

如何解决《如何使用内联JSDoc指示param是可选的?》经验,为你挑选了3个好方法。

根据@param的JSDoc wiki,您可以指示@param是可选的

/**
    @param {String} [name]
*/
function getPerson(name) {
}

并且您可以指示内联使用的参数

function getPerson(/**String*/ name) {
}

我可以将它们组合起来,如下所示,它可以正常工作.

/**
    @param [name]
*/
function getPerson(/**String*/name) {
}

但我想知道是否有办法在可能的情况下全部内联.



1> czerny..:

从官方文件:

可选参数

一个名为foo的可选参数.

@param {number} [foo]
// or:
@param {number=} foo

可选参数foo,默认值为1.

@param {number} [foo=1]


我在问如何内联.您提供的示例似乎与我在问题中显示的示例相同.

2> vvMINOvv..:

经过一番挖掘后,我发现这些也没问题

/**
 * @param {MyClass|undefined}
 * @param {MyClass=}
 * @param {String} [accessLevel="author"] The user accessLevel is optional.
 * @param {String} [accessLevel] The user accessLevel is optional.
 */

只是略微视觉上吸引力 function test(/**String=*/arg) {}


这些是有效的(并在JSDoc帮助中记录),但它们不是**内联** - 这是我正在寻找的.

3> studgeek..:

我找到了一种使用Google Closure Compiler 类型表达式来实现此目的的方法.你在类型之后放了一个等号: function test(/**String=*/arg) {}


WebStorm/IntellIDEA支持这种表示法
@PeterAronZentai,我将添加WebStorm/IntelliIDEA支持它,因为我为它添加了一个功能请求:).他们现在支持大多数Google Closure Compiler类型表达式,这非常棒.
是的,所以我认为它已获得足够的认可,将其标记为答案.
推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有