[英]how do I group parameters with JSDoc like lodash?
我想知道lodash如何根據用戶輸入的參數類型或數量對它們所具有的函數的參數建議進行分組,如下所示:
在上圖中,可以看到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執行上述操作?
可以使用函數重載的方法,但是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
參數對於告訴編譯器創建聲明文件很有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.