ASP.NET Core と TypeScript を使用した Visual Studio 開発のこのチュートリアルでは、単純な Web アプリケーションを作成し、TypeScript コードをいくつか追加してから、アプリを実行します。
Visual Studio 2022 以降では、ASP.NET Core で Angular または Vue を使用する場合は、ASP.NET Core シングル ページ アプリケーション (SPA) テンプレートを使用して、TypeScript を使用して ASP.NET Core アプリを作成することをお勧めします。 詳細については、 Angular または Vue の Visual Studio チュートリアルを参照してください。
Visual Studio をまだインストールしていない場合は、Visual Studio のダウンロード ページに移動して無料でインストールします。
このチュートリアルでは、以下の内容を学習します。
- ASP.NET Core プロジェクトを作成する
- TypeScript サポート用の NuGet パッケージを追加する
- TypeScript コードを追加する
- アプリを実行する
- npm を使用してサード パーティ製ライブラリを追加する
[前提条件]
Visual Studio がインストールされ、ASP.NET Web 開発ワークロードが必要です。
Visual Studio をまだインストールしていない場合は、Visual Studio のダウンロード ページに移動して無料でインストールします。
ワークロードをインストールする必要があるが、既に Visual Studio がある場合は、[ ツール>Get Tools and Features... に移動して、Visual Studio インストーラーを開きます。 ASP.NET と Web 開発ワークロードを選択し、[変更] を選択します。
新しい ASP.NET Core MVC プロジェクトを作成する
Visual Studio は 、プロジェクト内の 1 つのアプリケーションのファイルを管理します。 プロジェクトには、ソース コード、リソース、および構成ファイルが含まれています。
注
空の ASP.NET Core プロジェクトから開始し、TypeScript フロントエンドを追加するには、代わりに TypeScript を使用した ASP.NET Core を参照してください。
このチュートリアルでは、ASP.NET Core MVC アプリのコードを含む単純なプロジェクトから始めます。
Visual Studio を開きます。 スタート ウィンドウが開いていない場合は、[ファイル]
[スタート ウィンドウ] 選択します。 スタート ウィンドウで、[新しいプロジェクト
作成] を選択します。 [ 新しいプロジェクトの作成 ] ウィンドウで、検索ボックスに 「Web アプリ 」と入力します。 次に、言語として C# を選択します。
言語フィルターを適用した後、 Core Web App (Model-View-Controller) ASP.NET 選択し、[ 次へ] を選択します。
注
ASP.NET Core Web アプリケーション プロジェクト テンプレートが表示されない場合は、ASP.NET と Web 開発ワークロードを追加する必要があります。 詳細な手順については、「 前提条件」を参照してください。
[ 新しいプロジェクトの構成 ] ウィンドウで、[プロジェクト名] ボックスにプロジェクトの 名前 を入力します。 次に、 [次へ] を選択します。
- 推奨されるターゲット フレームワーク (.NET 8.0 または長期サポート) を選択し、[ 作成] を選択します。
- [追加情報] ウィンドウで、[フレームワーク] ドロップダウン メニューで [.NET 8.0] が選択されていることを確認し、[作成] を選択します。
Visual Studio で新しいプロジェクトが開きます。
コードを追加する
ソリューション エクスプローラー (右側のウィンドウ) で、プロジェクト ノードを右クリックし、[ ソリューションの NuGet パッケージの管理] を選択します。
[ 参照 ] タブで、 Microsoft.TypeScript.MSBuild を検索します。
[ インストール] を選択してパッケージをインストールします。
の追加
Visual Studio は、ソリューション エクスプローラーの Dependencies ノードの下に NuGet パッケージを追加します。
プロジェクト ノードを右クリックし、[ 新しい項目 > 追加] を選択します。 TypeScript JSON 構成ファイルを選択し、その後、で [の追加] を選択します。
すべての項目テンプレートが表示されない場合は、[すべてのテンプレートの表示]
選択し、項目テンプレートを選択します。 Visual Studio によって、
tsconfig.json
ファイルがプロジェクト ルートに追加されます。 このファイルを使用して、TypeScript コンパイラのオプションを 構成できます。tsconfig.json
を開き、既定のコードを次のコードに置き換えます。{ "compileOnSave": true, "compilerOptions": { "noImplicitAny": false, "noEmitOnError": true, "removeComments": false, "sourceMap": true, "target": "ES6", "outDir": "wwwroot/js" }, "include": [ "scripts/**/*" ], "exclude": [ "node_modules", "wwwroot" ] }
outDir オプションは、TypeScript コンパイラがトランスパイルするプレーンな JavaScript ファイルの出力フォルダーを指定します。
この構成では、TypeScript の基本的な使用方法について説明します。 gulp や webpack を使用する場合など、他のシナリオでは、wwwroot/js ではなく、トランスパイルされた JavaScript ファイル用に別の中間の場所が必要になる場合があります。 場所は、ツールと構成の設定によって異なります。
ソリューション エクスプローラーで、プロジェクト ノードを右クリックし、[ 新しいフォルダー > 追加] を選択します。 新しいフォルダーの名前 スクリプト を使用します。
scripts フォルダーを右クリックし、[新しい項目>追加] を選択します。 TypeScript ファイルを選択し、ファイル名の名前
app.ts
を入力し、[追加] を選択します。すべての項目テンプレートが表示されない場合は、[すべてのテンプレートの表示]
選択し、項目テンプレートを選択します。 Visual Studio によって
app.ts
フォルダーにが追加されます。app.ts
開き、次の TypeScript コードを追加します。function TSButton() { let name: string = "Fred"; document.getElementById("ts-example").innerHTML = greeter(user); } class Student { fullName: string; constructor(public firstName: string, public middleInitial: string, public lastName: string) { this.fullName = firstName + " " + middleInitial + " " + lastName; } } interface Person { firstName: string; lastName: string; } function greeter(person: Person) { return "Hello, " + person.firstName + " " + person.lastName; } let user = new Student("Fred", "M.", "Smith");
Visual Studio では、TypeScript コードに対する IntelliSense のサポートが提供されます。
この機能を試すには、
.lastName
関数からgreeter
を削除し、期間 (.) を再入力して、IntelliSense の更新に注目します。lastName
を選択して、姓をコードに追加し直します。Views/Home フォルダーを開き、Index.cshtml を開きます。
ファイルの末尾に次の HTML コードを追加します。
<div id="ts-example"> <br /> <button type="button" class="btn btn-primary btn-md" onclick="TSButton()"> Click Me </button> </div>
Views/Shared フォルダーを開き、_Layout.cshtml を開きます。
@await RenderSectionAsync("Scripts", required: false)
の呼び出しの前に、次のスクリプト参照を追加します。<script src="~/js/app.js"></script>
[ファイル]>[すべて保存] (Ctrl + Shift + S) を選択して変更を保存します。
アプリケーションをビルドする
ビルド > ビルド ソリューションを選択します。
アプリを実行するとアプリが自動的にビルドされますが、ビルド プロセス中に発生する処理を確認する必要があります。
wwwroot/js フォルダーを開き、
app.js
とソース マップ ファイルの 2 つの新しいファイル (.mapapp.js) を表示します。 TypeScript コンパイラは、これらのファイルを生成します。デバッグにはソース マップ ファイルが必要です。
アプリケーションを実行する
F5 (デバッグ>デバッグの開始) キーを押して、アプリケーションを実行します。
アプリがブラウザーで開きます。
ブラウザー ウィンドウに、[ ようこそ ] 見出しと [クリック する] ボタンが表示されます。
ボタンを選択して、TypeScript ファイルで指定したメッセージを表示します。
アプリケーションをデバッグする
コード エディターの左余白をクリックして、
greeter
のapp.ts
関数にブレークポイントを設定します。F5
押して、アプリケーションを実行します。 スクリプトのデバッグを有効にするには、メッセージへの応答が必要な場合があります。
注
クライアント側スクリプトのデバッグには、Chrome または Edge が必要です。
ページが読み込まれたら、クリックしてください。
アプリケーションはブレークポイントで一時停止します。 これで、変数を検査し、デバッガー機能を使用できるようになりました。
サード パーティ製ライブラリの TypeScript サポートを追加する
npm パッケージ管理の手順に従って、
package.json
ファイルをプロジェクトに追加します。 このタスクは、npm のサポートをプロジェクトに追加します。注
ASP.NET Core プロジェクトの場合は、npm の代わりに Library Manager または yarn を使用して、クライアント側の JavaScript ファイルと CSS ファイルをインストールすることもできます。
この例では、jQuery の TypeScript 定義ファイルをプロジェクトに追加します。
package.json
ファイルに次のコードを含めます。"devDependencies": { "@types/jquery": "3.5.1" }
このコードは、jQuery の TypeScript サポートを追加します。 jQuery ライブラリ自体は、MVC プロジェクト テンプレートに既に含まれています (ソリューション エクスプローラーの wwwroot/lib を参照)。 別のテンプレートを使用している場合は、jquery npm パッケージも含める必要があります。
ソリューション エクスプローラーでパッケージがインストールされていない場合は、npm ノードを右クリックし、[ パッケージの復元] を選択します。
ソリューション エクスプローラーで、scripts フォルダーを右クリックし、[ 追加>新しい項目] を選択します。
すべての項目テンプレートが表示されない場合は、[すべてのテンプレートの表示]
選択し、項目テンプレートを選択します。 [TypeScript ファイル] を選択し、「library.ts」と入力して、[追加] を選択します。
library.tsで、次のコードを追加します。
var jqtest = { showMsg: function (): void { let v: any = jQuery.fn.jquery.toString(); let content: any = $("#ts-example-2")[0].innerHTML; alert(content.toString() + " " + v + "!!"); $("#ts-example-2")[0].innerHTML = content + " " + v + "!!"; } }; jqtest.showMsg();
わかりやすくするために、このコードは jQuery とアラートを使用してメッセージを表示します。
jQuery の TypeScript 型定義を追加すると、次に示すように、jQuery オブジェクトの後にピリオド (.) を入力すると、jQuery オブジェクトで IntelliSense がサポートされます。
_Layout.cshtml で、スクリプト参照を更新して
library.js
を含めます。<script src="~/js/app.js"></script> <script src="~/js/library.js"></script>
Index.cshtml で、ファイルの末尾に次の HTML を追加します。
<div> <p id="ts-example-2">jQuery version is:</p> </div>
F5 (デバッグ>デバッグの開始) キーを押して、アプリケーションを実行します。
ブラウザーでアプリが開きます。
アラートで [OK] を 選択すると、jQuery バージョンに更新されたページ が 3.3.1!! と表示されます。
次のステップ
ASP.NET Core での TypeScript の使用について詳しくは、こちらをご覧ください。 Visual Studio での Angular プログラミングに関心がある場合は、Visual Studio の Angular 言語サービス拡張機能 を使用できます。