所以我有一个组件,这个组件被传递给一个 HOC,它应该增强原始组件。
我声明了组件正在接收的 props 的类型,但我仍然收到错误“TS2741”,其中显示:
Property 'auth' is missing in type '{}' but required in type 'AppProps'
我写了一个小例子,你可以在这里看到:https://stackblitz.com/edit/react-ts-huaq8s https://stackblitz.com/edit/react-ts-huaq8s
所以我的猜测是,TypeScript 检查是否props
从内部的返回函数withAuth
具有通过我们的类型声明的属性。这只会失败,因为我们正在检查的属性是稍后添加的(通过<WrappedComponent ... />
)
根据我目前的知识,我猜我必须以某种方式告诉 TypeScript 返回的WrappedComponent
应检查是否有P
。但我不知道该怎么做。
所以显然在我问这个问题之前,我读了很多网上的文章和论坛上的一些问题,但我仍然找不到答案。
这里有人可以帮助我吗?
我相信您只需将 AppProps 类型传递给 withAuth,否则您声明的泛型不会被使用。
i.e.:
const AppWithAuth = withAuth<AppProps>(App)
这是你想要的?
https://stackblitz.com/edit/react-ts-uxhgql?file=index.tsx https://stackblitz.com/edit/react-ts-uxhgql?file=index.tsx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)