'TypeScript errors for ReactNode after migration to Create React App v5
After migrating to Create React App version 5, I have errors like the one below:
TS2786: 'OutsideClickHandler' cannot be used as a JSX component.
  Its instance type 'OutsideClickHandler' is not a valid JSX element.
    The types returned by 'render()' are incompatible between these types.
      Type 'ReactNode' is not assignable to type 'false | Element | null'.
        Type 'undefined' is not assignable to type 'false | Element | null'.
    134 |       onClick={handleMouseOver}
    135 |     >
  > 136 |       <OutsideClickHandler
It's mainly for external libraries. For the library above the declaration is:
import * as React from "react";
export interface DefaultProps {
    disabled: boolean;
    useCapture: boolean;
    display: "block" | "flex" | "inline" | "inline-block" | "contents";
}
export interface Props extends Partial<DefaultProps> {
    children: React.ReactNode;
    onOutsideClick: (e: MouseEvent) => void;
}
export default class OutsideClickHandler extends React.Component<Props> {
    static defaultProps: DefaultProps;
}
I have similar problems with Helmet (react-helmet-async), TimeAgo (react-timeago), CopyToClipboard (react-copy-to-clipboard).
Has anyone encountered this problem before?
Solution 1:[1]
I had the same issue, and upgrading @types/react to 18.0.2 fixed the problem for me.
Specifically, I needed to update:
    "@types/react": "18.0.2",
    "@types/react-dom": "18.0.0",
    "react-i18next": "11.16.5",
    "react-helmet-async": "1.3.0",
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source | 
|---|---|
| Solution 1 | Davy | 
