目錄
TypeScript 類型擦除(type erasure)
TypeScript 是一種 JavaScript 的超集,它提供了類型檢查功能,可以在編譯時期檢查出程式碼中的錯誤,以提高程式碼的品質。
然而,TypeScript 編譯後的 JavaScript 程式碼,並不會保留原本的類型資訊,這種現象被稱為「類型擦除(type erasure)」。
類型擦除的原因
TypeScript 編譯後的 JavaScript 程式碼,並不會保留原本的類型資訊,這是因為 JavaScript 是一種動態型別的語言,它不需要在編譯時期就確定變數的類型,而是在執行時期才會確定變數的類型。
因此,TypeScript 編譯後的 JavaScript 程式碼,就不會保留原本的類型資訊,而是將類型資訊擦除掉,以符合 JavaScript 的動態型別特性。
類型擦除的優點
類型擦除的優點在於,可以讓 TypeScript 編譯後的 JavaScript 程式碼,更加精簡,更容易被執行。
另外,由於 JavaScript 是一種動態型別的語言,因此,TypeScript 編譯後的 JavaScript 程式碼,可以更容易地與其他 JavaScript 程式碼互相搭配,以擴充程式碼的功能。
類型擦除的範例
以下是一個 TypeScript 的範例,可以看到,它定義了一個名為 message
的變數,並且指定了它的類型為 string
:
let message: string = "Hello World!";
編譯後的 JavaScript 程式碼如下:
let message = "Hello World!";
可以看到,TypeScript 編譯後的 JavaScript 程式碼,就不會保留原本的類型資訊,而是將類型資訊擦除掉,以符合 JavaScript 的動態型別特性。
推薦閱讀文章
推薦閱讀文章
TypeScript Type Erasure
TypeScript Handbook: Advanced Types
TypeScript 2.1 Release Notes
TypeScript Handbook: Type Compatibility
TypeScript Handbook: Type Inference