跨多个方法记录相同的jsduck配置类型

时间:2014-05-07 01:51:08

标签: javascript documentation jsduck

两个问题:

首先,有没有人知道如何继承部分文档?特别是对于“选项”对象:

 * @param {Object}          opts
 * @param {String}          opts.effect    Transition effect.  fade|slide
 * @param {String}          opts.direction Direction to do the transition, when applicable.  up|down|left|right
 * @param {String|Number}   opts.duration  Transition duration in ms, or one of short|long
 * @param {String|Function} opts.timing    Transition timing function, or one of

基本上,我想在多种方法中使用该文档,但我不想将其复制到每个方法,我想要一个共同的地方来改变它。

第二,如果我可以继承文档,我可以扩展它吗?例如我想要:

method foo:
    opts.opt-a // inherited
    opts.opt-b // inherited
    opts.opt-c // inherited
    opts.opt-d // local to this method

1 个答案:

答案 0 :(得分:0)

不支持这种继承。

您可以做的是将此选项对象记录为仅文档类:

/**
 * @class FooOpts
 * A configuration object for Foo, instantiated with object literal.
 */
/** @cfg {String} effect */
/** @cfg {String} direction */
/** @cfg {String|Number} duration */
/** @cfg {String|Function} timing */

然后使用此仅文档类作为参数类型:

* @param {FooOpts} opts Config object for the FooOpts class.

要覆盖选项,您可以定义子类。

根据您拥有的选项数量,此方法的开销可能不合理。但也许你在几个地方指定了相同的选项,这表明你最好为他们创建一个实际的具体类。