我想知道 lodash 如何根据用户输入的参数类型或数量对参数建议进行分组,如下所示:
上图中可以看到lodash中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 tomin
in suggestion, but I don't know how to do it
如何使用 jsdoc 执行上述操作?
最佳答案
可以使用函数重载方法,但是javascript不支持这种方法,那lodash怎么做呢?
答案是 lodash 使用 typescript 编写代码。Typescript 允许您使用重载方法编写函数。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
参数可用于告诉编译器创建声明文件。
关于javascript - 我如何像 lodash 一样使用 JSDoc 对参数进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54743047/