【发布时间】:2021-06-07 17:33:27
【问题描述】:
我有一个这样写成函数的 React 组件:
function Button({ text, icon }) {
return ...
}
Button.propTypes = {
text: PropTypes.string.isRequired,
icon: PropTypes.string.isRequired
}
当使用这个组件时,我在 vscode 中得到了自动补全/智能感知
如果我将此组件包装在 React.forwardRef 中,
export default React.forwardRef((props, ref) => <Button btnRef={ref} {...props} />)
然后我得到 forwardRef 函数的智能感知,这对我的使用没有帮助,因为现在我无法让道具自动完成/显示在智能感知中。
我尝试使用 jsdoc extends / augments 注释 React.forwardRef 但没有成功,在这种情况下,即使 forwardRef 使用的默认智能感知也停止显示。 (我相信这是因为 vscode 比 jsdoc cmets 更偏爱可用类型)。有没有办法让我获得与未包装组件类似的包装组件的智能感知?这与我对以与未包装组件类似的方式使用包装组件的理解一致。
【问题讨论】:
-
我知道如何在 typescript 中执行此操作,但我不知道仅使用 JSDoc 会是什么样子。不过,您似乎希望在
Button上包含btnRef作为道具。 -
是的,btnRef 将是按钮的道具
标签: javascript reactjs typescript visual-studio-code