1

我需要创建一个 HOC,它采用一个组件并返回一个采用扁平化道具的新组件(我正在使用扁平化来实现它)并将未扁平化的道具应用于原始组件。

没有类型的 HOC 看起来像这样(我已经对其进行了测试并且它按预期工作):

const HOC = (Component) => (props) => {
    const newProps = unflatten(props);

    return <Component {...newProps} />;
};

问题是现在我需要向它添加类型所以这是我认为应该工作的:

const HOC = (Component: React.ComponentType) => (props: { [key: string]: string; }) => {
    const newProps = unflatten(props);

    return <Component {...newProps} />;
};

此解决方案导致最终返回线路出现此错误

Type 'unknown' is not assignable to type 'IntrinsicAttributes & { children?: ReactNode; }'.
  Type 'unknown' is not assignable to type 'IntrinsicAttributes'.ts(2322)
4

1 回答 1

0

您可以执行以下操作

const newProps = unflatten(props) as { [key: string]: string; };

或者

const newProps = unflatten(props) as  any;
于 2021-01-12T19:52:47.980 回答