我有一个以函数形式编写的 React 组件,如下所示:
function Button({ text, icon }) {
return ...
}
Button.propTypes = {
text: PropTypes.string.isRequired,
icon: PropTypes.string.isRequired
}
Run Code Online (Sandbox Code Playgroud)
使用此组件时,我在 vscode 中获得自动完成/智能感知
如果我将此组件包装在 React.forwardRef 中,
export default React.forwardRef((props, ref) => <Button btnRef={ref} {...props} />)
然后我得到了该forwardRef函数的智能感知,这对我的使用没有帮助,因为现在我无法让道具自动完成/显示在智能感知中。
我尝试React.forwardRef使用 jsdoc extends/进行注释augments,但没有成功,在这种情况下,即使forwardRef使用的默认智能感知也会停止显示。(我相信这是因为 vscode 比 jsdoc 注释更倾向于可用类型)。有没有办法让我获得与未包装组件类似的包装组件的智能感知?这符合我对以与未包装组件类似的方式使用包装组件的理解。