使用 HoC 时如何正确分配通用 props?

2024-02-14

所以我有一个组件,这个组件被传递给一个 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(使用前将#替换为@)

使用 HoC 时如何正确分配通用 props? 的相关文章

随机推荐