gpt4 book ai didi

javascript - 记录没有 new 的构造函数

转载 作者:行者123 更新时间:2023-11-28 05:17:52 25 4
gpt4 key购买 nike

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

最佳答案

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

/**一些描述@类(class)@隐藏构造函数*/函数 Foo()...

尽管如此,这将在通过 jsdoc 使用 typescript 进行类型检查验证时失败。在这种情况下,如果您不希望用户永远不使用 new 那么您应该将类​​记录为 ClassFoo 并使用 @hideconstructor 并单独@returns {ClassFoo}

的函数 Foo

关于javascript - 记录没有 new 的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40826962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com