JavaScript是作為客戶端的語言引入的。 Node.js的發(fā)展標志著JavaScript作為一種新興的服務器端技術。然而,隨著JavaScript代碼的增長,它往往會變得更加混亂,從而難以保持和重用代碼。此外,它沒有采用Object Orientation(面向對象),強類型檢查和編譯時錯誤檢查的功能,這使得JavaScript無法在企業(yè)級成功實現(xiàn)為一種成熟的服務器端技術。 TypeScript的出現(xiàn)彌補了這一差距。
根據(jù)定義,“TypeScript是用于應用程序規(guī)模開發(fā)的JavaScript?!?
TypeScript是強類型,面向對象的編譯語言。它是由微軟的Anders Hejlsberg(C#的設計者)設計的。TypeScript既是一種語言又是一組工具。TypeScript是編譯為JavaScript的JavaScript的類型超集。換句話說,TypeScript是JavaScript加上一些額外的功能。
TypeScript僅僅是JavaScript。TypeScript以JavaScript開始,并以JavaScript結束。Typescript從JavaScript中采用程序的基本構建塊。因此,你只需要知道JavaScript即可使用TypeScript。所有TypeScript代碼都轉換為它的JavaScript等效代碼。
TypeScript支持其他JS庫??梢詮娜魏蜫avaScript代碼中使用編譯的TypeScript。TypeScript生成的JavaScript可以復用所有現(xiàn)有的JavaScript框架,工具和庫。
JavaScript是TypeScript。這意味著,任何有效的.js文件可以被重新命名為.ts并使用其他TypeScript編譯器進行編譯。
TypeScript是可移植的。TypeScript可跨瀏覽器,設備和操作系統(tǒng)的移植。它可以在運行JavaScript的任何環(huán)境中運行。與它的對應程序不同,TypeScript不需要專用的VM(虛擬機)或特定運行時環(huán)境來執(zhí)行。
ECMAScript規(guī)范是腳本語言的標準化規(guī)范。已發(fā)布六個版本的ECMA-262。該標準的第6版代號為“Harmony”。TypeScript與ECMAScript6規(guī)范一致。
TypeScript采用ECMAScript5規(guī)范的基本語言功能,即JavaScript的官方規(guī)范。TypeScript的語言功能,如Modules(模塊)和基于類的取向符合ECMAScript 6規(guī)范。此外,TypeScript還包含泛型和類型注釋等功能,這些功能不屬于EcmaScript6規(guī)范的一部分。
TypeScript以擴展JavaScript的方式優(yōu)于其他類似CoffeeScript和Dart的編程語言。相比之下,像Dart和CoffeeScript這樣的語言本身就是新語言,需要特定于語言的執(zhí)行環(huán)境。
TypeScript的好處包括:
編譯 - JavaScript是一種解釋語言。因此,需要運行它來測試它是否有效。這意味著您編寫所有代碼時修需要一遍遍運行來測試輸出,以防出現(xiàn)錯誤。因此,你必須花時間來嘗試找到代碼中的錯誤。TypeScript轉換器提供錯誤檢查功能。 如果發(fā)現(xiàn)某種語法錯誤,TypeScript將編譯代碼并生成編譯錯誤。這有助于在腳本運行之前突出顯示錯誤。
強靜態(tài)類型 - JavaScript不是強類型。TypeScript通過TLS(TypeScript Language Service,TypeScript語言服務)提供可選的靜態(tài)類型和類型推論系統(tǒng)。TLS基于其值可以推論出沒有類型聲明的變量的類型。
TypeScript支持現(xiàn)有JavaScript庫的類型定義。TypeScript定義文件(擴展名為.d.ts)提供外部JavaScript庫的定義。因此,TypeScript代碼可以包含這些庫。
TypeScript支持Object Oriented Programming(面向對象編程)的概念,如類,接口,繼承等。
從本質上講,TypeScript有以下三個組成部分:
語言 - 它包括語法,關鍵字和類型注釋。
TypeScript編譯器 - TypeScript編譯器(TSC)將使用TypeScript編寫的指令轉換為其等效的JavaScript。
TypeScript語言服務 - “語言服務”在核心編譯管道周圍公開了一個額外的層,它是類似編輯器的應用程序。語言服務支持常見的編輯器操作集,如語句完成,簽名幫助,代碼格式化和大綱,著色等。
當編譯一個TypeScript腳本時,可以選擇生成一個聲明文件 (擴展名為.d.ts),該文件可用作編譯JavaScript中組件的接口。聲明文件的概念類似于C / C ++中頭文件的概念。聲明文件(擴展名為.d.ts的文件)為支持JavaScript庫(如jQuery,MooTools等)的類型,函數(shù)調用和變量提供了智能感知。
更多建議: