如何修改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
相关产品推荐
相关产品推荐

