使用Redux更新TypeScript React功能组件的问题

时间:2020-06-07 22:39:45

标签: javascript reactjs typescript react-redux

我有以下界面:

interface LinkIconProps {
    href: string;
}

以及以下功能组件签名:

const LinkIcon: FunctionComponent<LinkIconProps> = ({href, children}) => {...}

这可以正常工作,但是当我尝试使用Redux来connect()组件时出现问题,我似乎没有正确处理类型。我的reducer提供了一个值darkModeOn,所以我这样更新了我的界面:

interface LinkIconProps {
    href: string;
    darkModeOn: boolean;
}

我的组件签名是这样的:

const LinkIcon: FunctionComponent<LinkIconProps> = ({href, darkModeOn, children}) => {...}

但是现在我得到了错误:

Type '{ children: Element; href: string; }' is not assignable to type 'IntrinsicAttributes & Pick<LinkIconProps, "href" | "darkModeOn">'.
  Property 'children' does not exist on type 'IntrinsicAttributes & Pick<LinkIconProps, "href" | "darkModeOn">'.  TS2322

我假设TypeScript编译器以某种方式推断了Pick的类型,但不确定为什么。如何调整道具的类型,使其正常工作,或者我的问题出在其他地方?

0 个答案:

没有答案