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