簡體   English   中英

我如何像 lodash 一樣使用 JSDoc 對參數進行分組?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM