我对Typescript还是个新手,我想弄清楚到底发生了什么,以及原因。我已经更新了项目的typescript依赖关系,从4.7.4到最新的4.8.4版本,我得到了组件的错误,这些组件使用了通用的props。
示例:
export const withSomething = function <Props>(Component: FunctionComponent<Props>): FunctionComponent<Props> {
const WithSomething = function (props: Props) {
return <Component {...props} />
};
return WithSomething;
};
我从示例中删除了任何真正的逻辑,最初它是在一些额外的提供程序中 Package 组件。* Props * 是通用的。这段代码在typescript版本4.7.4中工作得非常好。但是对于4.8.4,我得到了以下错误:
x一个一个一个一个x一个一个二个x
现在,也许我不知 prop 体要看什么,但对我来说,* react * 源代码中没有任何东西强制 * FunctionComponent * 的 * Props * 扩展 * JSX. IntrinsicAttributes *。我已经花了几个小时试图找到原因,现在我不知道到底发生了什么。我也不一定在Typescript发行说明中看到任何解释这一点的东西。但我可能没能从他们那里了解到足够多。
我可以简单地扩展 * JSX. IntrinsicAttributes *,更新所有使用这段代码的地方,它可能会工作,但我想知道发生了什么,这是正确的方法。在阅读了几个主题后,我很确定我错过了一些相当明显的东西。
我很感激你的帮助。
1条答案
按热度按时间w8rqjzmb1#
从技术上讲,IntrinsicAttributes只有“key”属性,所以你可以只传递一个键给Component,它就会编译。理论上讲,这是一个脆弱的解决方案,但谁知道什么时候会有其他东西添加到该接口。