如何将 JsDoc 进行“混合”类型?

发布于 2024-10-16 04:41:59 字数 161 浏览 7 评论 0原文

简单的问题,如何记录“混合类型”?我知道我可以列出所有可能的类型,例如 {null|undefined|String|Number|Object} ,最终发现自己缺少一种类型并使其过于复杂。我尝试使用 Mixed 关键字,但它在许多 IDE(例如 WebStorm)中都会弹出错误。

Simple question, how do I document that "Mixed-type"? I know I could just list all possible types like {null|undefined|String|Number|Object} and end up finding myself missing one and making it overly complex. I tried using the Mixed keyword, but it popups errors in many IDEs such as WebStorm.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦幻的味道 2024-10-23 04:41:59

我找到了这样做的方法:

/**
 * @param {*} foo
 */
function bar(foo) {}

I found the way to do it:

/**
 * @param {*} foo
 */
function bar(foo) {}
忆离笙 2024-10-23 04:41:59

使用 {}

有一个来自 http://usejsdoc.org/tags 的示例-type.html

名为“myObj”的对象,其属性为“a”(数字)、“b”(一个
字符串)和“c”(任何类型)

{{a:数字,b:字符串,c}} myObj
// 或者:
{对象} myObj
{number} myObj.a
{字符串} myObj.b
{} myObj.c

Use {}

There is an example from http://usejsdoc.org/tags-type.html:

An object called 'myObj' with properties 'a' (a number), 'b' (a
string) and 'c' (any type).

{{a: number, b: string, c}} myObj
// or:
{Object} myObj
{number} myObj.a
{string} myObj.b
{} myObj.c
你如我软肋 2024-10-23 04:41:59

在 JSDoc 中,您可以用不同的方式描述值。例如,使用以下标签@type@param@return
您可以使用“?”指定可选值。这是一个例子

    /**
     * Returns string or null
     *
     * @param {?string} nullableStringArgument
     *
     * @return {?string}
     */
    function returnNullableString (nullableStringArgument = null) {
        /** @type {?string} */
        const nullableString = [null, 'string'][Math.floor(Math.random() * 2)];

        return nullableString;
    }

In JSDoc, you can describe values in different ways. For example, using the following tags @type, @param, @return.
You can specify optional values using the "?". Here is an example

    /**
     * Returns string or null
     *
     * @param {?string} nullableStringArgument
     *
     * @return {?string}
     */
    function returnNullableString (nullableStringArgument = null) {
        /** @type {?string} */
        const nullableString = [null, 'string'][Math.floor(Math.random() * 2)];

        return nullableString;
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文