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 データベース テーブルとデータベース パーティショニング戦略

まず、テーブルを分割する必要がある理由について説明します。データシートが数百万に達すると、1 回のク...

Vue2.x - アンチシェイクとスロットリングの使用例

目次ユーティリティ: vue での使用:説明する:画像安定化:スロットル:ユーティリティ: // 手...

MySQL 8.0 ウィンドウ関数の紹介と概要

序文MySQL 8.0 より前は、Oracle、SQL SERVER、PostgreSQL などの他...

js Promise同時制御メソッド

目次質問背景アイデアと実装質問次のように、同時実行 Promise の数を制御するメソッドを記述する...

CentOS に Memcached と PHP Memcached 拡張機能をインストールする

高性能分散メモリオブジェクトキャッシュシステムMemcachedについては、別の記事「Windows...

Mysql 複数データベースのバックアップ コード例

この記事は主にMysqlの複数データベースのバックアップのコード例を紹介します。この記事ではサンプル...

Vue3でelement-plusを使用する方法の詳細な説明

目次1. インストール2. main.jsにインポートする3. 使用Vue3がリリースされてからしば...

MySQLの文字セットを変更する方法

1. MySQLの文字セットを確認する '%char%' のような変数を表示します。...

vuex ベースのショッピングカート機能の実装

この記事の例では、ショッピングカート機能を実装するためのvuexの具体的なコードを参考までに共有して...

Dockerの匿名マウントと名前付きマウントの具体的な使用法

目次データ量匿名マウントと名前付きマウントデータボリュームの場所データ量匿名マウントと名前付きマウン...

5 分で vue-cli3 を使用してプロジェクトを作成する方法を説明します (初心者向けガイド)

目次1. Vue環境を構築する2. Vue スキャフォールディングツール3. プロジェクトを作成する...

MySQLデータベースでの値の追加、変更、削除、クリアの例

3. MySQLデータ管理最初の方法:お勧めできません。複雑そうです -- 学生テーブルの grad...

JavaScript における URL オブジェクトの素晴らしい使い方

目次序文解析パラメータURLパラメータを変更する要約する序文URLオブジェクトはページ側ではあまり使...

WeChat アプレット開発フォーム検証 WxValidate の使用

個人的には、WeChat アプレットの開発フレームワークは VUE と概ね似ていると感じていますが、...