
- TypeScript 基礎
- TypeScript - 首頁
- TypeScript - 路線圖
- TypeScript - 概述
- TypeScript - 環境設定
- TypeScript - 基本語法
- TypeScript 與 JavaScript 的比較
- TypeScript - 特性
- TypeScript - 變數
- TypeScript - let & const
- TypeScript - 運算子
- TypeScript 基本型別
- TypeScript - 型別
- TypeScript - 型別註解
- TypeScript - 型別推斷
- TypeScript - 數字
- TypeScript - 字串
- TypeScript - 布林值
- TypeScript - 陣列
- TypeScript - 元組
- TypeScript - 列舉
- TypeScript - any
- TypeScript - never
- TypeScript - 聯合型別
- TypeScript - 字面量型別
- TypeScript - 符號
- TypeScript - null 與 undefined
- TypeScript - 類型別名
- TypeScript 控制流
- TypeScript - 決策
- TypeScript - if 語句
- TypeScript - if else 語句
- TypeScript - 巢狀 if 語句
- TypeScript - switch 語句
- TypeScript - 迴圈
- TypeScript - for 迴圈
- TypeScript - while 迴圈
- TypeScript - do while 迴圈
- TypeScript 函式
- TypeScript - 函式
- TypeScript - 函式型別
- TypeScript - 可選引數
- TypeScript - 預設引數
- TypeScript - 匿名函式
- TypeScript - Function 建構函式
- TypeScript - rest 引數
- TypeScript - 引數解構
- TypeScript - 箭頭函式
- TypeScript 介面
- TypeScript - 介面
- TypeScript - 介面擴充套件
- TypeScript 類和物件
- TypeScript - 類
- TypeScript - 物件
- TypeScript - 訪問修飾符
- TypeScript - 只讀屬性
- TypeScript - 繼承
- TypeScript - 靜態方法和屬性
- TypeScript - 抽象類
- TypeScript - 訪問器
- TypeScript - 鴨子型別
- TypeScript 高階型別
- TypeScript - 交叉型別
- TypeScript - 型別守衛
- TypeScript - 型別斷言
- TypeScript 型別操作
- TypeScript - 從型別建立型別
- TypeScript - keyof 型別運算子
- TypeScript - typeof 型別運算子
- TypeScript - 索引訪問型別
- TypeScript - 條件型別
- TypeScript - 對映型別
- TypeScript - 模板字面量型別
- TypeScript 泛型
- TypeScript - 泛型
- TypeScript - 泛型約束
- TypeScript - 泛型介面
- TypeScript - 泛型類
- TypeScript 其他
- TypeScript - 三斜槓指令
- TypeScript - 名稱空間
- TypeScript - 模組
- TypeScript - 環境宣告
- TypeScript - 裝飾器
- TypeScript - 型別相容性
- TypeScript - Date 物件
- TypeScript - 迭代器和生成器
- TypeScript - Mixins
- TypeScript - 實用程式型別
- TypeScript - 裝箱和拆箱
- TypeScript - tsconfig.json
- 從 JavaScript 到 TypeScript
- TypeScript 有用資源
- TypeScript - 快速指南
- TypeScript - 有用資源
- TypeScript - 討論
TypeScript - 概述
JavaScript 最初被引入作為客戶端語言。Node.js 的開發也標誌著 JavaScript 成為一種新興的伺服器端技術。然而,隨著 JavaScript 程式碼的增長,它往往會變得越來越混亂,難以維護和重用程式碼。此外,它未能採用面向物件特性、強型別檢查和編譯時錯誤檢查,阻止了 JavaScript 作為成熟的伺服器端技術在企業級應用中的成功。TypeScript 的出現正是為了彌補這一差距。
什麼是 TypeScript?
根據定義,“TypeScript 是用於應用程式規模開發的 JavaScript”。
TypeScript 是一種強型別的、面向物件的、編譯型語言。它由微軟的Anders Hejlsberg(C# 的設計者)設計。TypeScript 既是一種語言,也是一組工具。TypeScript 是 JavaScript 的一個型別化超集,編譯成 JavaScript。換句話說,TypeScript 是 JavaScript 加上一些額外的特性。

TypeScript 的特性
TypeScript 本質上就是 JavaScript。TypeScript 從 JavaScript 開始,最終也轉換為 JavaScript。TypeScript 採用 JavaScript 中程式的基本構建塊。因此,你只需要瞭解 JavaScript 就可以使用 TypeScript。所有 TypeScript 程式碼都會轉換為其 JavaScript 等效程式碼以進行執行。
TypeScript 支援其他 JS 庫。編譯後的 TypeScript 可以被任何 JavaScript 程式碼使用。TypeScript 生成的 JavaScript 可以重用所有現有的 JavaScript 框架、工具和庫。
JavaScript 就是 TypeScript。這意味著任何有效的.js 檔案都可以重新命名為.ts 並與其他 TypeScript 檔案一起編譯。
TypeScript 是可移植的。TypeScript 可跨瀏覽器、裝置和作業系統移植。它可以在任何 JavaScript 執行的環境中執行。與其他語言不同,TypeScript 不需要專用的虛擬機器或特定的執行時環境來執行。
TypeScript 和 ECMAScript
ECMAScript 規範是指令碼語言的標準化規範。已經發布了六個版本的 ECMA-262。第 6 版標準的代號為“Harmony”。TypeScript 與 ECMAScript 6 規範保持一致。

TypeScript 的基本語言特性來自 ECMAScript 5 規範,即 JavaScript 的官方規範。TypeScript 的語言特性,如模組和基於類的面向物件程式設計,符合 EcmaScript 6 規範。此外,TypeScript 還包含泛型和型別註解等特性,而這些特性並非 EcmaScript 6 規範的一部分。
為什麼要使用 TypeScript?
TypeScript 比其他同類語言(如 CoffeeScript 和 Dart 程式語言)更勝一籌,因為它擴充套件了 JavaScript。相比之下,Dart、CoffeeScript 等語言本身就是新的語言,需要特定語言的執行環境。
TypeScript 的優勢包括:
編譯 - JavaScript 是一種解釋型語言。因此,需要執行它才能測試其有效性。這意味著你編寫所有程式碼只是為了發現沒有輸出,如果存在錯誤的話。因此,你必須花費數小時的時間來查詢程式碼中的錯誤。TypeScript 編譯器提供了錯誤檢查功能。如果 TypeScript 發現任何語法錯誤,它將編譯程式碼並生成編譯錯誤。這有助於在指令碼執行之前突出顯示錯誤。
強大的靜態型別 - JavaScript 不是強型別語言。TypeScript 透過 TLS(TypeScript 語言服務)提供可選的靜態型別和型別推斷系統。未宣告型別的變數的型別可以由 TLS 根據其值推斷。
TypeScript 支援現有 JavaScript 庫的型別定義。TypeScript 定義檔案(副檔名為.d.ts)為外部 JavaScript 庫提供定義。因此,TypeScript 程式碼可以包含這些庫。
TypeScript 支援面向物件程式設計的概念,如類、介面、繼承等。
TypeScript 的組成部分
TypeScript 主要包含以下三個元件:
語言 - 它包括語法、關鍵字和型別註解。
TypeScript 編譯器 - TypeScript 編譯器 (tsc) 將 TypeScript 編寫的指令轉換為其 JavaScript 等效程式碼。
TypeScript 語言服務 - “語言服務”在核心編譯器管道周圍提供了一個額外的層,用於類似編輯器的應用程式。語言服務支援典型編輯器操作的常用集合,例如語句完成、簽名幫助、程式碼格式化和概述、顏色設定等。

宣告檔案
當 TypeScript 指令碼編譯時,可以選擇生成一個宣告檔案(副檔名為.d.ts),它充當已編譯 JavaScript 中元件的介面。宣告檔案的概念類似於 C/C++ 中的標頭檔案。宣告檔案(副檔名為.d.ts 的檔案)為 JavaScript 庫(如 jQuery、MooTools 等)提供型別、函式呼叫和變數的智慧提示。