【问题标题】:Documenting constructor functions without new在没有 new 的情况下记录构造函数
【发布时间】:2017-04-11 03:38:34
【问题描述】:

我有一个构造函数Foo,我希望我的用户在没有new 的情况下调用它。例如,

const myFoo = Foo('bar');

对于Foo 定义为,

function Foo(bar) {
  if(!this) { return new Foo(bar); }
  foo.bar = bar;
  return this;
}

我如何用 JSDoc3 记录这个?如果我将@class(或@constructor)与默认模板一起使用,则输出始终使用new Foo(bar)。如果我将Foo 记录为@function,则不会显示任何实例方法或属性,只会显示函数本身。

有没有办法将类定义与构造函数分开?还是将输出配置为不在构造函数中指定new@lends@constructs 看起来解决了类似的需求,但针对对象字面量中定义的构造函数和实例方法。

【问题讨论】:

    标签: javascript jsdoc jsdoc3


    【解决方案1】:

    你可以使用@hideconstructor 吗? ,例如:

    /** 一些描述 @班级 @hideconstructor */ 函数 Foo()...

    尽管如此,这将无法通过 jsdoc 使用 typescript 进行类型检查验证。在这种情况下,如果您不希望您的用户永远不使用new,那么您应该将类​​记录为ClassFoo@hideconstructor,并分别将@returns {ClassFoo} 的函数Foo 记录下来

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-21
      • 2018-09-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-09
      • 2021-12-29
      相关资源
      最近更新 更多