`Rest parameters JSDOC` 未在 vscode 中正确标记

`Rest parameters JSDOC` is not correctly flagged in vscode

我的代码是否有问题导致 vscode 没有正确的提示?

/**
 *
 * @param  {...Object} elementList
 * @param  {string} elementList[].type
 */
function add(...elementList) {
    // vscode tip: elementList is (parameter) elementList: any[]
    // expect: elementList is {type: string;}[]
    elementList.map(e => e)
}

// use
add({ type: 'div' }, { type: 'h1' })

您需要格式 @param {type} parameterName,例如

/**
 * @param {{type: string}[]} elementList
 */
function add(...elementList) {
    elementList.map(e => e)
//  ^^^^^^^^^^^ (parameter) elementList: {type: string}[]
}

或者,您可以使用 JSDoc 创建可重用的类型定义:

// Define an Object type named MyElement with one property (type) of type string.
/**
 * @typedef {Object} MyElement
 * @property {string} type
 */

/**
 * @param {MyElement[]} elementList
 */
function add(...elementList) {
    elementList.map(e => e)
//  ^^^^^^^^^^^ (parameter) elementList: MyElement[]
}