我有以下界面:
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
的类型,但不确定为什么。如何调整道具的类型,使其正常工作,或者我的问题出在其他地方?