如何使用lodash之类的JSDoc对参数进行分组?

时间:2019-02-18 08:23:33

标签: javascript parameters jsdoc

我想知道 lodash 如何根据用户输入的参数类型或数量将其功能上的参数建议分组,如下所示:

enter image description here

在上图中,可以看到 lodash 中的each功能的建议有 8个分组。下面是我的示例代码:

示例功能:

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


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

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

我想从建议中删除 max 参数,但我不知道如何   去做



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

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

我想在建议中将 allowSize 参数重命名为 min ,但我不希望   知道怎么做


如何使用 jsdoc 完成上述操作?

1 个答案:

答案 0 :(得分:1)

您可以使用函数重载方法,但是javascript不支持此方法。那么您如何执行 lodash

答案是 lodash ,使用打字稿编写代码。打字稿允许您使用重载方法编写函数。打字稿将生成扩展名为.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参数对于告诉编译器创建声明文件很有用。