You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode无法正确识别Rest parameters的JSDoc类型标注该如何解决?

问题原因

你当前使用的JSDoc标注语法不被VSCode内置的类型解析逻辑支持,分开声明@param {string} elementList[].type的写法无法被识别,因此类型会降级为any[]。

正确写法

方案1:直接在参数处声明结构

如果你不需要复用这个对象类型,可以直接在@param行定义剩余参数的结构:

/**
 * @param  {...{type: string}} elementList
 */
function add(...elementList) {
    // 此时elementList会被正确识别为 {type: string}[] 类型
    elementList.map(e => e)
}

方案2:先定义类型再引用

如果该对象结构需要在多处使用,可以先通过@typedef定义自定义类型再引用:

/**
 * @typedef {Object} Element
 * @property {string} type
 */

/**
 * @param  {...Element} elementList
 */
function add(...elementList) {
    elementList.map(e => e)
}

可选增强配置

如果想要更强的类型校验能力,可以在JS文件顶部添加// @ts-check注释,或是在项目根目录的jsconfig.json中配置"checkJs": true,强制VSCode开启JavaScript类型检查,类型提示的准确性会更高。

内容的提问来源于stack exchange,提问作者user15163984

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 22:15:03