我有一个构造函数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
看起来解决了类似的需求,但是对于对象文字中定义的构造函数和实例方法。
答案 0 :(得分:0)
您可以使用@hideconstructor
吗? ,例如:
/ ** 一些描述 @类 @hideconstructor * / function Foo()...
然而,这将通过jsdoc使用typescript进行类型检查验证失败。在这种情况下,如果您不希望您的用户永远不会使用new
,那么您应该使用ClassFoo
将该类记录为@hideconstructor
,并将{F} {<1}} < / p>