TypeScript 語言 (TypeScript Programming Language)

TypeScript 是由 Microsoft 開發的開源程式語言,它是 JavaScript 的超集 (superset),在 JavaScript 的基礎上加入了靜態型別系統 (static type system) 和其他進階特性。TypeScript 程式碼需要經過編譯 (compile) 轉換成 JavaScript 後,才能在瀏覽器或 Node.js 環境中執行。

TypeScript 的設計目標是讓開發者能夠在大型專案中更安全、更有效率地撰寫 JavaScript 程式碼。

TypeScript 於 2012 年首次公開發布,由 C# 的首席架構師 Anders Hejlsberg 主導設計。它提供了型別檢查、介面 (interface)、泛型 (generics) 等強大功能,同時保持與 JavaScript 的完全相容性。

為什麼要學 TypeScript?

  1. 靜態型別檢查:在編譯階段就能發現型別錯誤,減少執行時期的 bug
  2. 更好的開發體驗:編輯器能提供更精準的自動完成、重構和錯誤提示
  3. 程式碼可讀性:型別註解讓程式碼的意圖更加清晰
  4. 大型專案首選:適合團隊協作和維護大型程式碼庫
  5. 業界主流:Angular、Vue 3、React 生態系都大量採用 TypeScript

TypeScript 和 JavaScript 的關係

TypeScript 是 JavaScript 的超集,這意味著:

  • 所有合法的 JavaScript 程式碼都是合法的 TypeScript 程式碼
  • TypeScript 可以使用所有 JavaScript 的函式庫和框架
  • TypeScript 最終會被編譯成純 JavaScript 執行
┌─────────────────────────────┐
│        TypeScript           │
│  ┌───────────────────────┐  │
│  │     JavaScript        │  │
│  │  ┌─────────────────┐  │  │
│  │  │    ECMAScript   │  │  │
│  │  └─────────────────┘  │  │
│  └───────────────────────┘  │
└─────────────────────────────┘

TypeScript 的優點

編譯時期錯誤檢查

// JavaScript 不會在開發時期告訴你這個錯誤
function greet(name) {
    console.log("Hello, " + name.toUpperCase());
}
greet(123); // 執行時才會出錯!

// TypeScript 會在編譯時就發現問題
function greet(name: string) {
    console.log("Hello, " + name.toUpperCase());
}
greet(123); // 編譯錯誤:型別 'number' 不可指派給型別 'string'

更好的 IDE 支援

有了型別資訊,編輯器可以提供:

  • 精準的自動完成建議
  • 即時的錯誤提示
  • 安全的重構功能
  • 快速的程式碼導航

漸進式採用

你可以在現有的 JavaScript 專案中逐步引入 TypeScript,不需要一次全部改寫。

學習 TypeScript 的前置條件

在學習 TypeScript 之前,建議你已經具備:

  • JavaScript 基礎知識
  • 了解 ES6 語法 (如 arrow functions、class、modules 等)
  • 基本的命令列操作能力

準備好了嗎?讓我們從安裝 TypeScript 開始吧!