フロントエンド開発といえば。
react アプリの初期化( npm init vite@latest <アプリ名> )

React19 における React.ReactElement と React.JSX.Element の違い

React.ReactElement

    interface ReactElement<
        P = unknown,
        T extends string | JSXElementConstructor<any> = string | JSXElementConstructor<any>,
    > {
        type: T;
        props: P;
        key: string | null;
    }

React.JSX.Element

interface Element extends React.ReactElement<any, any> {}

React公式サイトでは ReactElement推し のようです。

https://ja.react.dev/learn/typescript#typing-children

コンポーネントの子要素を型として記述する一般的な方法は 2 つあります。
・1 つ目は React.ReactNode 型を使用する方法でありこれは JSX で子要素として渡すことが可能なすべての型のユニオン型です。
・2 つ目は React.ReactElement 型を使用する方法です。こちらは JSX 要素のみを指し、文字列や数値のような JavaScript のプリミティブは含まれません。

● react 18 → 19 upgrade 時に自動変換する

npx types-react-codemod@latest preset-19 ./

● TS2694: Namespace 'global.JSX' has no exported member 'Element'. エラーの対処法

TS2694: Namespace 'global.JSX' has no exported member 'Element'.

エラーを消したい時は、以下を import します

import { type JSX } from 'react';
No.2656
09/25 10:31

edit