我如何像 lodash 一样使用 JSDoc 对参数进行分组?

how do I group parameters with JSDoc like lodash?

我想知道 lodash 如何根据参数的类型或数量对它们所具有的功能的参数建议进行分组用户输入如下图:



上图中可以看到lodash[=49=中each函数有8组条建议]。以下是我的示例代码:

示例函数:

function filter(allowSize, max) {
  //do Something
}


如果filter函数只有1个参数,使用下面的jsdoc:

/**
 * @param {object} allowSize
 * @param {number} allowSize.min
 * @param {number} allowSize.max
 */

I want to remove max parameter from suggestion, but I don't know how to do it



如果filter函数有2个参数,使用下面的jsdoc:

/**
 * @param {number} allowSize
 * @param {number} max
 */

I want to rename allowSize parameter to min in suggestion, but I don't know how to do it


如何使用 jsdoc?

执行上述操作

你可以使用函数重载方法,但是javascript不支持这个method.Then你怎么做lodash

答案是 lodash 使用 typescript 编写它们 code.Typescript 允许您使用重载编写函数 method.Typescript 将生成一个扩展名为 .d.ts 其中包含与编写的代码相关的信息。

示例:

function filter(allowSize: object): any;
function filter(min: number, max: number): any;
function filter(arg1: object | number, arg2?: number): any {
    if (typeof arg1 === "object") {
        // do something when the function only have 1 parameter
    } else if (typeof arg1 === "number" && typeof arg2 === "number") {
        // do something when the function has 2 parameters
    } else {
        // default
    }
}

之后,用命令tsc -d typescript_file.ts

编译TS文件

-d 参数对于告诉编译器创建声明文件很有用。