React+TypeScriptプロジェクト構築事例解説

React+TypeScriptプロジェクト構築事例解説

React プロジェクトの構築は非常に簡単ですが、Typescript と組み合わせると、実際にはそれほど面倒ではなく、公式 Web サイトにも非常に明確な手順が記載されています。方法は2つあります:

1. TypeScript を使用して React プロジェクトを直接ビルドするには、追加のパラメータを追加する必要があり、テンプレートではデフォルトの cra-template を使用できません。代わりに cra-template-typescript を使用してください。

npx create-react-app tsreactdemo --template typescript

作成成功のプロンプトは、元のものとあまり変わりません。プロジェクト パスに直接移動し、yarn start または npm start を実行します。

プロジェクトに入るときは、急いで始める必要はありません。まず、ファイルがどのようになっているかを見てみましょう。デフォルトで tsconfig.json が作成され、src ディレクトリ内のデフォルトの index.js および App.js ファイルは、ts バージョンの index.tsx および App.tsx に変更されます。

package.json の依存関係を確認できます。

実際、依存関係は @types/jest、@types/node、@types/react、@types/react-dom だけです。

当初、Typescript React プロジェクトを作成するために使用したコマンドは npx create-react-app xxx --typescript のようでしたが、これはもう不可能です。後続のパラメータは、直接 --typescript ではなく --template typescript にする必要があります。これは説明が必要です。私たちがミスをしたわけではありません。実際、最初はこのように使用されていました。現在は更新されており、方法が変わっています。このことから、Web フロントエンドの変化が速すぎることがわかります。1、2 年勉強しないと、認識が完全に覆される可能性があります。 これは、--typescript が作成できないことを意味するものではありません。エラーなしで作成されますが、デフォルトは react プロジェクトであり、typescript コンテンツは含まれません。

また、このようにプロジェクトを作成する場合、公式ドキュメントではcreate-react-appツールをグローバルにインストールしないことも推奨されています。最新バージョンでは、npx create-react-appを介して最新のreactプロジェクトを直接作成できます。create-react-appをグローバルにインストールし、バージョンが最新でない場合は、古いバージョンのreactプロジェクトが作成されている可能性が非常に高くなります。インストールされている場合は、npm uninstall -g create-react-appで直接アンインストールできます。

2. React プロジェクトに基づいて、TypeScript 関連の依存関係を追加するだけです。

npm インストール typescript @types/react --save

まず、デフォルトの React プロジェクトを作成します。

コマンドでは、--typescriptを直接追加しました。これは前に言ったことです。元々はこの方法で作成されていましたが、現在この方法は機能しません。ただし、エラーは報告されません。作成されるデフォルトのプロジェクトはreactプロジェクトで、使用されるテンプレートはcra-templateです。

TypeScript 依存関係を直接追加します。

実際、tsconfig.json ファイルを追加せずに、このように追加することができます。プロジェクトに大きな変更を加えずに依存関係を直接追加したようなものです。

index.js および App.js ファイルを index.tsx および App.tsx に変更すると、npm start または yarn start によってデフォルトで tsconfig.json ファイルが作成されます。これは公式 Web サイトでも明記されています。tsconfig.json を手動で作成する必要はありません。

デフォルトで生成された tsconfig.json ファイルの内容を確認することもできます。

{
  "コンパイラオプション": {
    "ターゲット": "es5",
    "ライブラリ": [
      「ドム」、
      "dom.iterable",
      「エスネクスト」
    ]、
    "allowJs": 真、
    "skipLibCheck": true、
    "esModuleInterop": 真、
    "allowSyntheticDefaultImports": true、
    "厳密": 真、
    "forceConsistentCasingInFileNames": true、
    "noFallthroughCasesInSwitch": true、
    "モジュール": "esnext",
    "モジュール解像度": "ノード",
    "resolveJsonModule": true、
    "isolatedModules": true、
    "noEmit": 真、
    "jsx": "react-jsx"
  },
  "含む": [
    「ソース」
  ]
}

実際、手動で作成するとこうなると思うので、そのまま自動生成させるのが良いでしょう。

React+TypeScript によるプロジェクト構築の事例紹介はこれで終了です。React+TypeScript によるプロジェクト構築に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • TypeScript 関数の定義と使用例のチュートリアル
  • 1つの記事でTypeScriptのデータ型について学ぶ
  • Typescript の as、疑問符、感嘆符の詳細な説明
  • webpackを使用してTypeScriptコードをパッケージ化およびコンパイルする方法を教えます
  • Typescript での infer キーワードの使用に関する詳細な理解
  • TypeScript の Enum が問題となる理由
  • TypeScript をインストール、使用、自動コンパイルする方法に関するチュートリアル
  • TypeScript インターフェース定義ケースチュートリアル

<<:  IIS サーバーから apk ファイルをダウンロードする際の 404 エラーの解決策

>>:  MySQL ピボットテーブルについての簡単な説明

推薦する

MySQLデータベースが予期せずクラッシュし、テーブルデータファイルが破損して起動できなくなる問題を解決します。

問題: MySQL データベースが予期せずクラッシュしたため、データベースを起動できませんでした。エ...

Nginx の起動に失敗した場合のいくつかのエラー処理の詳細な説明

Nginx を Web サーバーとして使用する際に、次の問題が発生しました。 1. nginxの起動...

Vueはechartを使用してラベルと色をカスタマイズします

この記事では、参考までに、echartを使用してタグと色をカスタマイズするVueの具体的なコードを紹...

Vueのウェブページスクリーンショット機能の詳しい説明

最近、プロジェクトで写真をアップロードする要件があるのですが、顧客がアップロードする写真のサイズがま...

垂直方向の中央揃えをエレガントに実現する方法を教えます(推奨)

序文CSS で水平方向と垂直方向に中央揃えする方法はたくさんあります。この記事で紹介する方法は非常に...

vue WatchとComputedの使用の概要

目次01. リスナーウォッチ(1)機能(2)特性と方法(3)監視対象(4)リスニングアレイ02. 計...

ウェブページのドロップダウンリストとdivレイヤーのカバーの問題を選択する

HTML の select 要素に関する質問は、さまざまな場所で提起されています。最近のプロジェクト...

ルート権限なしでログインするためのDockerソリューション

docker コマンドを初めて使用する場合、権限の問題を確認するメッセージが表示されます。 unix...

Vue は小数点付きの星評価を実装します

この記事では、小数点付きの星評価を実装するためのVueの具体的なコードを参考までに共有します。具体的...

CSS スティッキー配置位置の詳細な説明: スティッキー問題の落とし穴

前書き: position:sticky は CSS ポジショニングの新しい属性です。相対ポジショニ...

速度、読み込み、Web アプリケーションなどにおける div と table の違い。

1: 速度と読み込み方法の違いdivとtableの違いは速度ではなく、読み込み方法です。速度はネット...

Web デザイン リファレンス Firefox デフォルト スタイル

W3C は HTML の標準をいくつか確立していますが、ブラウザは独自の定義済みスタイルに従って W...

TypeScriptはvscodeを使用してコードのコンパイルプロセスを監視します

インストールtsコマンドをグローバルにインストールする npm install -g typescr...

入力ボックスのコンテンツプロンプトと非表示機能を実装する JavaScript

入力ボックスが小さい場合、内容を入力した後に、入力内容が拡大されたプロンプト ボックスを表示したいこ...