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

如何为解构声明的变量添加注释以实现鼠标悬停显示描述

解构变量加注释不显示?这么解决就行

问题情况

给useState解构出来的state和setState加注释时,不管是单行//还是多行/** */,鼠标悬停只能看到变量类型,注释内容完全不生效:

// 注释不生效
/** 注释也不生效 */
const [state, setState] = useState(0)

解构变量仅显示类型的鼠标悬停效果

但同样的注释方式给普通变量用就正常:
普通变量正常显示注释的鼠标悬停效果

解决办法

想让解构变量的注释被编辑器识别,得换个写法,下面几种方法都能用:

1. 给每个解构变量单独加行内注释

把注释直接写在对应变量上方,换行解构即可:

const [
  /** 用来记录计数的状态值 */
  state, 
  /** 更新计数状态的函数,传入数字即可修改state */
  setState
] = useState(0)

2. 先定义带注释的类型,再给解构整体标注

用@typedef定义包含注释的类型,再给解构语句指定这个类型:

/**
 * @typedef {Object} CountState
 * @property {number} current - 当前的计数值
 * @property {(newVal: number) => void} update - 更新计数值的函数
 */

/** @type {CountState} */
const [state, setState] = useState(0)

3. 给useState的返回值加JSDoc注释

直接给useState调用的返回值标注带注释的类型,解构变量会自动继承注释:

/**
 * @returns {[
 *   number, // 当前计数的状态值
 *   (newVal: number) => void // 更新状态的函数
 * ]}
 */
const [state, setState] = useState(0)

用上面任意一种方法,VSCode这类支持JSDoc的编辑器就能正确显示注释内容了。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 21:03:10