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

如何修改JSDoc标注下VSCode返回对象索引签名的默认变量名

实现方案

你只需将JSDoc中Object.<string, number>的泛型简写写法,替换为显式声明了索引签名键名的对象类型写法即可,两种常用实现方式如下:

方式1:直接在返回值注解内声明

/**
 * @return {{[baz: string]: number}} 
 */
function foo() {}

配置后VSCode悬浮提示就会直接显示你期望的[baz: string]: number效果。

方式2:定义可复用的自定义类型

如果该索引类型需要在多处使用,可以先用@typedef声明一次,后续直接引用即可:

/**
 * @typedef {{[baz: string]: number}} StringKeyNumberMap
 */

/**
 * @return {StringKeyNumberMap}
 */
function foo() {}

原理解释

你之前用的Object.<string, number>是JSDoc的泛型对象简写语法,VSCode的类型提示底层依赖TypeScript,对这种简写语法默认生成的索引签名键名就是x,只有显式写出带自定义键名的索引签名,才会覆盖默认命名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:06:03