在没有new的情况下记录构造函数

时间:2016-11-27 08:09:39

标签: javascript jsdoc jsdoc3

我有一个构造函数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看起来解决了类似的需求,但是对于对象文字中定义的构造函数和实例方法。

1 个答案:

答案 0 :(得分:0)

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

/ ** 一些描述 @类 @hideconstructor * / function Foo()...

然而,这将通过jsdoc使用typescript进行类型检查验证失败。在这种情况下,如果您不希望您的用户永远不会使用new,那么您应该使用ClassFoo将该类记录为@hideconstructor,并将{F} {<1}} < / p>