How to fix Binding element 'children' implicitly has an 'any' type.ts(7031)?
Yes you are missing a type for Props as whole, which means typescript sees it as any
and your ts rules dont allow it.
You have to type your props as:
interface IProps {
children: ReactNode;
// any other props that come into the component
}
const Button1 = ({ children, ...props }: IProps) => (
<Button {...props}>{children}</Button>
);
You can also add the predefined type to your functional components like this:
const Button1: React.FC<{}> = ({ children }) => (
<Button>{children}</Button>
);
By this way you don't have to repeat yourself to define children
props.
The fuller version could be like this:
interface Props {
// any other props that come into the component, you don't have to explicitly define children.
}
const Button: React.FC<Props> = ({ children, ...props }) => {
return (
<Button {...props}>{children}</Button>
);
};
Please note it works for React 16.8