處理 TypeScript
請支持這本書:購買捐款
(廣告,請不要封鎖。)

4 TypeScript 如何運作?鳥瞰圖



本章節提供 TypeScript 運作方式的鳥瞰圖:一般 TypeScript 專案的結構為何?如何編譯以及如何編譯?我們如何使用 IDE 編寫 TypeScript?

4.1 TypeScript 專案的結構

這是 TypeScript 專案可能有的檔案結構

typescript-project/
  dist/
  ts/
    src/
      main.ts
      util.ts
    test/
      util_test.ts
  tsconfig.json

說明

4.1.1 tsconfig.json

tsconfig.json 的內容如下

{
  "compilerOptions": {
    "rootDir": "ts",
    "outDir": "dist",
    "module": "commonjs",
    ···
  }
}

我們已指定

4.2 透過整合開發環境 (IDE) 編寫 TypeScript

兩個流行的 JavaScript IDE 是

本節的觀察結果是關於 Visual Studio Code,但也可能適用於其他 IDE。

要了解的一個重要事實是,Visual Studio Code 以兩種獨立的方式處理 TypeScript 原始碼

4.3 TypeScript 編譯器產生的其他檔案

給定 TypeScript 檔案 main.ts,TypeScript 編譯器可以產生數種成品。最常見的是

TypeScript 通常不是透過 .ts 檔案傳遞,而是透過 .js 檔案和 .d.ts 檔案

原始碼清單會針對 main.js 中輸出的程式碼各部分,說明 main.ts 中輸入程式碼的哪一部分產生了它。除了其他資訊外,此資訊還能讓執行時間環境執行 JavaScript 程式碼,同時在錯誤訊息中顯示 TypeScript 程式碼的行號。

4.3.1 若要從 TypeScript 使用 npm 套件,我們需要類型資訊

npm 登錄資料庫是 JavaScript 程式碼的龐大存放庫。如果我們要從 TypeScript 使用 JavaScript 套件,我們需要它的類型資訊

DefinitelyTyped 的宣告檔案位於 @types 名稱空間中。因此,如果我們需要套件的宣告檔案,例如 lodash,我們必須安裝套件 @types/lodash

4.4 將 TypeScript 編譯器用於純 JavaScript 檔案

TypeScript 編譯器也可以處理純 JavaScript 檔案

以下是 JSDoc 註解的範例,它提供函式 add() 的靜態類型資訊

/**
 * @param {number} x - The first operand
 * @param {number} y - The second operand
 * @returns {number} The sum of both operands
 */
function add(x, y) {
  return x + y;
}

更多資訊:TypeScript 手冊中的「類型檢查 JavaScript 檔案」。