1. 程式人生 > 其它 >js與ts

js與ts

語言特性

TypeScript 是一種給 JavaScript 新增特性的語言擴充套件。增加的功能包括:

  • 型別批註和編譯時型別檢查
  • 型別推斷
  • 型別擦除
  • 介面
  • 列舉
  • Mixin
  • 泛型程式設計
  • 名字空間
  • 元組
  • Await

以下功能是從 ECMA 2015 反向移植而來:

  • 模組
  • lambda 函式的箭頭語法
  • 可選引數以及預設引數

JavaScript 與 TypeScript 的區別

TypeScript 是 JavaScript 的超集,擴充套件了 JavaScript 的語法,因此現有的 JavaScript 程式碼可與 TypeScript 一起工作無需任何修改,TypeScript 通過型別註解提供編譯時的靜態型別檢查。

TypeScript 可處理已有的 JavaScript 程式碼,並只對其中的 TypeScript 程式碼進行編譯。

JavaScript 特點

JavaScript 是一種指令碼編寫語言,無需編譯,只要嵌入 HTML 程式碼中,就能由瀏覽器逐行載入解釋執行。

JavaScript 是一種基於物件的語言,可以建立物件同時使用現有物件。但是 Javascript 並不支援其它面嚮物件語言所具有的繼承和過載功能。

JavaScript 的語法簡單,使用的變數為弱型別。

JavaScript 語言較為安全,僅在瀏覽器端執行,不會訪問本地硬碟資料。

JavaScript 語言具有動態性。JavaScript 是事件驅動的,只根據使用者的操作做出相應的反應處理。

JavaScript 只依賴於瀏覽器,與作業系統的因素無關。因此 JavaScript 是一種跨平臺的語言。

JavaScript 相容性較好,能夠與其他技術(如 XML,REST API 等)一起使用。

TypeScript 特點

TypeScript 是 Microsoft 推出的開源語言,使用 Apache 授權協議
TypeScript 增加了靜態型別、類、模組、介面和型別註解
TypeScript 可用於開發大型的應用
TypeScript 從核心語言方面和類概念的模塑方面對 JavaScript 物件模型進行擴充套件。

JavaScript 程式碼可以在無需任何修改的情況下與 TypeScript 一同工作,同時可以使用編譯器將 TypeScript 程式碼轉換為 JavaScript。

TypeScript 通過型別註解提供編譯時的靜態型別檢查。

TypeScript 中的資料要求帶有明確的型別,JavaScript不要求。

TypeScript 為函式提供了預設引數值。

TypeScript 引入了 JavaScript 中沒有的“類”概念。es6中的class其實是基於原型的

TypeScript 中引入了模組的概念,可以把宣告、資料、函式和類封裝在模組中。