次の方法で共有


チュートリアル: Visual Studio で既存の ASP.NET Core アプリに TypeScript を追加する

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 アプリのコードを含む単純なプロジェクトから始めます。

  1. Visual Studio を開きます。 スタート ウィンドウが開いていない場合は、[ファイル][スタート ウィンドウ]選択します。

  2. スタート ウィンドウで、[新しいプロジェクト作成] を選択します。

  3. [ 新しいプロジェクトの作成 ] ウィンドウで、検索ボックスに 「Web アプリ 」と入力します。 次に、言語として C# を選択します。

    言語フィルターを適用した後、 Core Web App (Model-View-Controller) ASP.NET 選択し、[ 次へ] を選択します。

    ASP.NET Core Web アプリケーション プロジェクト テンプレートが表示されない場合は、ASP.NET と Web 開発ワークロードを追加する必要があります。 詳細な手順については、「 前提条件」を参照してください。

  4. [ 新しいプロジェクトの構成 ] ウィンドウで、[プロジェクト名] ボックスにプロジェクトの 名前 を入力します。 次に、 [次へ] を選択します。

  1. 推奨されるターゲット フレームワーク (.NET 8.0 または長期サポート) を選択し、[ 作成] を選択します。
  1. [追加情報] ウィンドウで、[フレームワーク] ドロップダウン メニューで [.NET 8.0] が選択されていることを確認し、[作成] を選択します。

Visual Studio で新しいプロジェクトが開きます。

コードを追加する

  1. ソリューション エクスプローラー (右側のウィンドウ) で、プロジェクト ノードを右クリックし、[ ソリューションの NuGet パッケージの管理] を選択します。

  2. [ 参照 ] タブで、 Microsoft.TypeScript.MSBuild を検索します。

  3. [ インストール] を選択してパッケージをインストールします。

    NuGet パッケージ の追加

    Visual Studio は、ソリューション エクスプローラーの Dependencies ノードの下に NuGet パッケージを追加します。

  4. プロジェクト ノードを右クリックし、[ 新しい項目 > 追加] を選択します。 TypeScript JSON 構成ファイルを選択し、その後、で [の追加] を選択します。

    すべての項目テンプレートが表示されない場合は、[すべてのテンプレートの表示]選択し、項目テンプレートを選択します。

    Visual Studio によって、 tsconfig.json ファイルがプロジェクト ルートに追加されます。 このファイルを使用して、TypeScript コンパイラのオプションを 構成できます。

  5. 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 ファイル用に別の中間の場所が必要になる場合があります。 場所は、ツールと構成の設定によって異なります。

  6. ソリューション エクスプローラーで、プロジェクト ノードを右クリックし、[ 新しいフォルダー > 追加] を選択します。 新しいフォルダーの名前 スクリプト を使用します。

  7. scripts フォルダーを右クリックし、[新しい項目>追加] を選択します。 TypeScript ファイルを選択し、ファイル名の名前app.tsを入力し、[追加] を選択します。

    すべての項目テンプレートが表示されない場合は、[すべてのテンプレートの表示]選択し、項目テンプレートを選択します。

    Visual Studio によってapp.ts フォルダーにが追加されます。

  8. 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 の更新に注目します。

    IntelliSense の表示

    lastNameを選択して、姓をコードに追加し直します。

  9. Views/Home フォルダーを開き、Index.cshtml を開きます。

  10. ファイルの末尾に次の HTML コードを追加します。

    <div id="ts-example">
        <br />
        <button type="button" class="btn btn-primary btn-md" onclick="TSButton()">
            Click Me
        </button>
    </div>
    
  11. Views/Shared フォルダーを開き、_Layout.cshtml を開きます。

  12. @await RenderSectionAsync("Scripts", required: false)の呼び出しの前に、次のスクリプト参照を追加します。

    <script src="~/js/app.js"></script>
    
  13. [ファイル]>[すべて保存] (Ctrl + Shift + S) を選択して変更を保存します。

アプリケーションをビルドする

  1. ビルド > ビルド ソリューションを選択します。

    アプリを実行するとアプリが自動的にビルドされますが、ビルド プロセス中に発生する処理を確認する必要があります。

  2. wwwroot/js フォルダーを開き、app.js とソース マップ ファイルの 2 つの新しいファイル (.mapapp.js) を表示します。 TypeScript コンパイラは、これらのファイルを生成します。

    デバッグにはソース マップ ファイルが必要です。

アプリケーションを実行する

  1. F5 (デバッグ>デバッグの開始) キーを押して、アプリケーションを実行します。

    アプリがブラウザーで開きます。

    ブラウザー ウィンドウに、[ ようこそ ] 見出しと [クリック する] ボタンが表示されます。

    TypeScript を使用したコアの ASP.NET

  2. ボタンを選択して、TypeScript ファイルで指定したメッセージを表示します。

アプリケーションをデバッグする

  1. コード エディターの左余白をクリックして、greeterapp.ts関数にブレークポイントを設定します。

    ブレークポイントを設定する

  2. F5 押して、アプリケーションを実行します。

    スクリプトのデバッグを有効にするには、メッセージへの応答が必要な場合があります。

    クライアント側スクリプトのデバッグには、Chrome または Edge が必要です。

  3. ページが読み込まれたら、クリックしてください

    アプリケーションはブレークポイントで一時停止します。 これで、変数を検査し、デバッガー機能を使用できるようになりました。

サード パーティ製ライブラリの TypeScript サポートを追加する

  1. npm パッケージ管理の手順に従って、package.json ファイルをプロジェクトに追加します。 このタスクは、npm のサポートをプロジェクトに追加します。

    ASP.NET Core プロジェクトの場合は、npm の代わりに Library Manager または yarn を使用して、クライアント側の JavaScript ファイルと CSS ファイルをインストールすることもできます。

  2. この例では、jQuery の TypeScript 定義ファイルをプロジェクトに追加します。 package.json ファイルに次のコードを含めます。

    "devDependencies": {
      "@types/jquery": "3.5.1"
    }
    

    このコードは、jQuery の TypeScript サポートを追加します。 jQuery ライブラリ自体は、MVC プロジェクト テンプレートに既に含まれています (ソリューション エクスプローラーの wwwroot/lib を参照)。 別のテンプレートを使用している場合は、jquery npm パッケージも含める必要があります。

  3. ソリューション エクスプローラーでパッケージがインストールされていない場合は、npm ノードを右クリックし、[ パッケージの復元] を選択します。

    一部のシナリオでは、package.json説明する既知の問題が原因で、npm パッケージが と同期していないとソリューション エクスプローラーで示される場合があります。 たとえば、パッケージはインストール時にインストールされていないと表示される場合があります。 ほとんどの場合、ソリューション エクスプローラーを更新するには、 package.jsonを削除し、Visual Studio を再起動し、この記事で前述したように package.json ファイルを再追加します。

  4. ソリューション エクスプローラーで、scripts フォルダーを右クリックし、[ 追加>新しい項目] を選択します。

    すべての項目テンプレートが表示されない場合は、[すべてのテンプレートの表示]選択し、項目テンプレートを選択します。

  5. [TypeScript ファイル] を選択し、「library.ts」と入力して、[追加] を選択します。

  6. 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 がサポートされます。

    J クエリの例の Intellisense 結果を示すスクリーンショット。

  7. _Layout.cshtml で、スクリプト参照を更新してlibrary.jsを含めます。

    <script src="~/js/app.js"></script>
    <script src="~/js/library.js"></script>
    
  8. Index.cshtml で、ファイルの末尾に次の HTML を追加します。

    <div>
      <p id="ts-example-2">jQuery version is:</p>
    </div>
    
  9. F5 (デバッグ>デバッグの開始) キーを押して、アプリケーションを実行します。

    ブラウザーでアプリが開きます。

    アラートで [OK] を 選択すると、jQuery バージョンに更新されたページ が 3.3.1!! と表示されます。

    J クエリの例を示すスクリーンショット。

次のステップ

ASP.NET Core での TypeScript の使用について詳しくは、こちらをご覧ください。 Visual Studio での Angular プログラミングに関心がある場合は、Visual Studio の Angular 言語サービス拡張機能 を使用できます。