「React」はUMDグローバルを参照していますが、現在のファイルはモジュールです質問する

「React」はUMDグローバルを参照していますが、現在のファイルはモジュールです質問する

プロジェクトを更新して react app 4.0 を作成し、ゆっくりとファイルを TypeScript に移行しています。この新しいバージョンでは、'react' から React を繰り返しインポートする必要がないことはわかっています。ただし、React をインポートしていないすべての TS ファイル内で、次のエラーが発生します。

'React' は UMD グローバルを参照していますが、現在のファイルはモジュールです。代わりにインポートを追加することを検討してください。ts(2686)`

React をインポートすることで修正できることはわかっていますが、これはもう必要ないと思っていました。また、このエラーの意味を説明していただける方はいらっしゃいますか?

私の基本的なTSXファイル

const Users = () => {
    return <>Teachers aka Users</>;
};

export default Users;

ベストアンサー1

Create React App はバージョン 4 で新しい JSX 変換をすぐにサポートしますが、カスタム設定を使用している場合は、jsxなしで記述するときに TypeScript エラーを削除するために以下が必要ですimport React from 'react'

  • typescript少なくともバージョン4.1
  • react少なくともreact-domバージョン17
  • tsconfig.jsonjsxコンパイラオプションがreact-jsxまたはである必要がありますreact-jsxdev

例:

// tsconfig.json
{
  "compilerOptions": {
    ...
    "jsx": "react-jsx"
    ...
  },
}

React 17 JSXファクトリーのサポートに関するTypeScriptドキュメントは以下にあります。ここ

おすすめ記事