[英]How to annotate an object with Function type that has variable number of arguments in JSDoc?
通過使用 @type 的內聯 function 定義,我找不到解決go問題的方法。 但是,有幾個替代方案有一些缺點,您可以考慮。
第一種方式使用 JSDoc 語法,並且應該與任何讀取它的工具兼容。 我首先聲明了一個@callback function 類型,然后將變量的類型設置為它。 通過將最后一個參數名稱括在括號中,該參數將變為可選,並且應該可以清除您的錯誤。
/**
* @callback WarnFunc
* @param {boolean} arg1
* @param {string} arg2
* @param {...*} [restParam]
* @returns void
*/
/** @type WarnFunc*/
exports.warn = createMacro(macro);
上面的問題是它比你以前的要冗長得多。 TypeScript 支持在 TypeScript 語法和 JSDoc 中定義的類型參數。 因此,如果維護 JSDoc 的語法不是優先事項,那么以下方式應該可以工作並且更簡潔:
/**
* @type {(arg1: boolean, arg2: string, ...restArgs: string[]) => void}
*/
exports.warn = createMacro(macro);
當我這樣做時,我沒有收到任何錯誤,但restArgs參數也沒有顯示為可選。 因此,如果您仍有問題,可以明確地將 rest 參數設為可選。 當我嘗試它時它似乎工作,雖然它不是有效的 TypeScript 語法。
@type {(arg1: boolean, arg2: string, ...restArgs?: string[]) => void}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.