共用方式為


教學課程:在Visual Studio中將 TypeScript 新增至現有的 ASP.NET Core 應用程式

在本教學課程中,使用 ASP.NET Core 和 TypeScript 進行 Visual Studio 開發時,您會建立簡單的 Web 應用程式、新增一些 TypeScript 程式代碼,然後執行應用程式。

在 Visual Studio 2022 和更新版本中,如果您想要搭配 ASP.NET Core 使用 Angular 或 Vue,建議您使用 ASP.NET 核心單頁應用程式 (SPA) 範本來建立具有 TypeScript 的 ASP.NET Core 應用程式。 如需詳細資訊,請參閱 AngularVue的 Visual Studio 教學課程。

如果您尚未安裝 Visual Studio,請移至 Visual Studio 下載 頁面免費安裝。

在本教學課程中,您將瞭解如何:

  • 建立 ASP.NET Core 專案
  • 新增 TypeScript 支援的 NuGet 套件
  • 新增一些 TypeScript 程式代碼
  • 執行應用程式
  • 使用 npm 新增第三方連結庫

先決條件

您必須已安裝 Visual Studio 和 ASP.NET Web 開發工作負載。

  • 如果您尚未安裝 Visual Studio,請移至 Visual Studio 下載 頁面免費安裝。

  • 如果您需要安裝工作負載,但已經有Visual Studio,請移至 Tools>Get Tools and Features... 以開啟 Visual Studio 安裝程式。 選擇 ASP.NET 和 Web 開發 工作負載,然後選取 [修改]

建立新的 ASP.NET Core MVC 專案

Visual Studio 會管理 項目中單一應用程式的檔案,。 專案包含原始程式碼、資源和組態檔。

注意

若要從空白的 ASP.NET Core 專案開始,並新增 TypeScript 前端,請改為參閱 ASP.NET Core with TypeScript

在本教學課程中,您會從包含 ASP.NET Core MVC 應用程式的程式代碼的簡單項目開始。

  1. 開啟 Visual Studio。 如果啟動視窗未開啟,請選擇 [檔案]>[開始視窗]

  2. 在 [開始] 視窗中,選擇 [[建立新專案]

  3. 在 [建立新專案] 視窗中,在搜尋方塊中輸入 網站應用程式。 接下來,選擇 C# 作為語言。

    套用語言篩選之後,請選擇 [ASP.NET Core Web 應用程式][模型-View-Controller],然後選取 [下一步]

    注意

    如果您沒有看到 ASP.NET Core Web 應用程式 項目範本,則必須新增 ASP.NET 和 Web 開發 工作負載。 如需詳細指示,請參閱 必要條件

  4. 在 [[設定新專案] 視窗中,於 [專案名稱] 方塊中輸入項目的名稱。 然後,選取 [下一步]

  1. 選取建議的目標 Framework(.NET 8.0 或長期支援),然後選取「建立」。
  1. 在 [其他資訊] 視窗中,確定已選取 [Framework] 下拉功能表中的 [.NET 8.0],然後選取 [建立 ]。

Visual Studio 會開啟您的新專案。

新增一些程序代碼

  1. 在 [方案總管] (右窗格) 中,以滑鼠右鍵按兩下項目節點,然後選取 [[管理方案的 NuGet 套件]

  2. 在 [瀏覽] 索引標籤中,搜尋 Microsoft.TypeScript.MSBuild

  3. 選取 安裝 以安裝套件。

    新增 NuGet 套件

    Visual Studio 會在 [方案總管] 中的 [相依性] 節點底下新增 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時,您可能會想要轉譯 JavaScript 檔案的不同中繼位置,而不是 wwwroot/js。 位置取決於您的工具和組態喜好設定。

  6. 在 [方案總管] 中,按一下滑鼠右鍵項目節點,然後選取 [新增] > > [新增資料夾]。 將新資料夾命名為 文稿

  7. 以滑鼠右鍵按下 文稿 資料夾,然後選取 [[新增 > 新專案]。 選擇 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 支援。

    若要嘗試這個功能特性,請從 greeter 函式中移除 .lastName,重新輸入句點(.),並注意 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. 在呼叫 @RenderSectionAsync("Scripts", required: false)之前新增下列腳本參考:

    <script src="~/js/app.js"></script>
    
  13. 選取 [檔案]>[全部儲存] [Ctrl + Shift + S] 來儲存變更。

建置應用程式

  1. 選取 建置 > 建置方案

    雖然應用程式會在您執行時自動建置,但我們想要查看建置程式期間發生的情況。

  2. 開啟 wwwroot/js 資料夾,以查看兩個新檔案:app.js 和來源對應檔案,app.js.map。 TypeScript 編譯程式會產生這些檔案。

    需要原始碼映射檔案才能進行偵錯。

執行應用程式

  1. F5Debug>Start Debug) 來執行應用程式。

    應用程式會在瀏覽器中開啟。

    在瀏覽器視窗中,您會看到 歡迎 標題和 點擊我 按鈕。

    zh-TW: ASP.NET Core 與 TypeScript

  2. 選取按鈕以顯示我們在 TypeScript 檔案中指定的訊息。

對應用程式進行偵錯

  1. 按兩下程式代碼編輯器的左邊界,在 app.ts 中設定 greeter 函式中的斷點。

    設定斷點

  2. F5 以執行應用程式。

    您可能需要回應訊息,才能啟用腳本偵錯。

    注意

    用戶端腳本偵錯需要 Chrome 或 Edge。

  3. 當頁面載入時,請按 [點擊 我]。

    應用程式會在斷點暫停。 現在,您可以檢查變數並使用調試程式功能。

新增對第三方函式庫的 TypeScript 支援

  1. 請遵循 npm 套件管理 中的指示,將 package.json 檔案新增至您的專案。 此工作會將 npm 支援新增至您的專案。

    注意

    針對 ASP.NET Core 專案,您也可以使用 Library Manager 或 yarn,而不是 npm 來安裝用戶端 JavaScript 和 CSS 檔案。

  2. 在此範例中,將 jQuery 的 TypeScript 定義檔新增至您的專案。 在您的 package.json 檔案中包含下列程序代碼。

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

    此程式代碼會新增 jQuery 的 TypeScript 支援。 jQuery 函式庫本身已包含在 MVC 專案範本中(在 [方案總管] 中查看 wwwroot/lib 下方)。 如果您使用不同的範本,您可能也需要包含 jquery npm 套件。

  3. 如果未安裝方案總管中的套件,請以滑鼠右鍵按下 npm 節點,然後選擇 [還原套件]

    注意

    在某些情況下,方案總管可能會指出 npm 套件與 package.json 不同步,這是由於此處 中描述的已知問題。 例如,套件可能會在安裝時顯示為未安裝。 在大部分情況下,您可以刪除 package.json、重新啟動Visual Studio,然後重新新增 package.json 檔案,以更新方案總管,如本文稍早所述。

  4. 在 [方案總管] 中,以滑鼠右鍵點擊腳本資料夾,然後選擇 [新增>項目]

    如果您沒有看到所有項目範本,請選擇 [顯示所有範本],然後選擇項目範本。

  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. F5Debug>Start Debug) 來執行應用程式。

    應用程式會在瀏覽器中開啟。

    在警示中選擇 [確定],以查看更新為 jQuery 版本為:3.3.1!

    顯示 J 查詢範例的螢幕快照。

後續步驟

您可能想要深入瞭解如何搭配 ASP.NET Core 使用 TypeScript。 如果您對 Visual Studio 中的 Angular 程式設計感興趣,可以使用適用於 Visual Studio 的 Angular 語言服務延伸模組