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 ピボットテーブルについての簡単な説明

推薦する

zabbix 4.04 の詳細なインストール チュートリアル (CentOS 7.6 ベース)

1. インストール前の準備: 1.1 JDKをインストールするopenjdkをアンインストールする...

HTMLウェブページテーブル構造化マークアップの応用に関する簡単な説明

Web テーブルの構造マークアップについて説明する前に、いくつかの画像を見てみましょう。 HTML ...

Maven モードで Tomcat ソースコードを実行する方法

序文最近、Tomcat の起動プロセスを分析していました。Tomcat のソース コードはアイデア次...

CSS ボックスを中央揃えするためのよく使われるいくつかの方法 (要約)

最初のもの: CSSの位置プロパティの使用 <スタイル タイプ="text/css&...

Linuxブートサービスを起動する2つの方法

目次rc.local メソッドchkconfig メソッドrc.local メソッド1 まず自動的に...

MySQL ルートパスワードを変更する複数の方法 (推奨)

方法1: SET PASSWORDコマンドを使用する MySQL -u ルート mysql> ...

モバイルウェブ画面適応(rem)

序文最近、フロントエンドの学習に関する以前のメモを整理したところ、モバイル Web 画面の適応 (r...

回転灯効果を実現するWeChatアプレットの例

序文日常の開発では、テキストの水平スクロール効果(一般にカルーセルと呼ばれる)によく遭遇します。これ...

Vue + Axios リクエストインターフェース方式とパラメータ渡し方式の詳しい説明

目次1. リクエストを取得する: 2. 投稿リクエスト: 3. 拡張と補足Vue スキャフォールディ...

jQuery はテーブルのページング効果を実装します

この記事では、テーブルのページング効果を実現するためのjQueryの具体的なコードを参考までに紹介し...

MySQL での replace と replace into の使い方の説明

MySQL の replace と replace into はどちらも頻繁に使用される関数です。r...

VUEをベースにしたシンプルな学生情報管理システムの実装

目次1. 主な機能2. 実装のアイデア3. コードの実装4. エフェクト表示V. 結論1. 主な機能...

CSSの使用に関する深い理解 clear:both

clear:both清除浮動これは私が常に持っていた印象ですが、私はこれをめったに使用せず、私の理...

CocosCreator Huarongdaoデジタルパズルの詳しい説明

目次序文文章1. パネル2. 華容島ソリューション3. コード4. 注記序文華容路とは何ですか? 誰...

Linux 上でプロジェクトをリリースするために Tomcat を展開するプロセスにおけるさまざまな問題と解決策

プロジェクトをプロジェクトサイトのテスト環境にデプロイするJDK1.8トムキャット8.5 Maven...