React井字棋函数参数JSDoc显示为布尔值问题排查
问题原因及解决方法
问题根源是你的JSDoc标注方式和函数实际的参数结构不匹配,和React特性、解构语法本身无关。
具体解释
function Board({xIsNext, squares, onPlay}) 是ES6的解构赋值写法,函数本质上只接收一个参数——包含这三个属性的props对象,而非三个独立参数。但你在JSDoc里用@param分别标注xIsNext、squares、onPlay,相当于告诉编辑器这三个是函数的独立入参,和实际参数结构不符,导致IntelliSense解析出错。
正确的JSDoc写法
你需要把props作为单个参数标注,再明确其内部属性的类型,以下是两种常用写法:
方式一:分层次标注props及属性
/** * 返回游戏棋盘组件 * @param {Object} props - 组件的props对象 * @param {boolean} props.xIsNext - 用于显示下一位玩家的标识 * @param {string[]} props.squares - 当前棋盘状态,会在下一步操作时更新 * @param {Function} props.onPlay - 用于触发棋盘重新渲染的函数 * @returns {JSX.Element} 棋盘的JSX结构 */ function Board({xIsNext, squares, onPlay}) { // ... }
方式二:直接标注对象类型
/** * 返回游戏棋盘组件 * @param {{xIsNext: boolean, squares: string[], onPlay: Function}} props - 组件props * @returns {JSX.Element} 棋盘的JSX结构 */ function Board({xIsNext, squares, onPlay}) { // ... }
调整标注方式后,IntelliSense就能正确识别参数类型了。
内容的提问来源于stack exchange,提问作者Yvialga
相关产品推荐
相关产品推荐

