JavaScript 最初是為了在 1995 年左右版本的 Netscape Navigator 中運(yùn)行而發(fā)明的。當(dāng)時(shí),開(kāi)發(fā)人員做出設(shè)計(jì)決策是為了解決今天看來(lái)難以想象的限制,例如:
JavaScript 語(yǔ)言的構(gòu)建是為了向 Web 開(kāi)發(fā)人員提供簡(jiǎn)單的核心功能。
三十年后,JavaScript 盔甲上的裂縫現(xiàn)在顯現(xiàn)出來(lái),特別是當(dāng)開(kāi)發(fā)人員使用該語(yǔ)言通過(guò) Angular 和 React 構(gòu)建漸進(jìn)式 Web 應(yīng)用程序,或通過(guò) NodeJS 構(gòu)建復(fù)雜的后端微服務(wù)時(shí)。
TypeScript 從一開(kāi)始就被設(shè)計(jì)為一種優(yōu)雅的、完全面向?qū)ο蟮木幊陶Z(yǔ)言,它提供功能特性和可選的設(shè)計(jì)時(shí)類(lèi)型檢查。
借助 TypeScript,開(kāi)發(fā)人員可以使用像 C# 或 Java 一樣優(yōu)雅、富有哲理且功能豐富的語(yǔ)言。編譯后,TypeScript 會(huì)變成跨平臺(tái)的 JavaScript 代碼,保證可以在任何符合 ECMAScript 的運(yùn)行時(shí)中工作。
TypeScript 支持通過(guò)使用命名空間來(lái)模塊化和組織組件的能力,而 JavaScript 不支持這一點(diǎn)。
通過(guò)使用可選參數(shù)和命名參數(shù)等語(yǔ)法元素,TypeScript 比 JavaScript 更具表現(xiàn)力。
TypeScript IDE 具有更多功能,因?yàn)闉殪o態(tài)類(lèi)型語(yǔ)言構(gòu)建插件和工具更容易。
隨著代碼庫(kù)的擴(kuò)展,TypeScript 代碼更容易調(diào)試,因?yàn)榭梢栽诰幾g時(shí)而不是運(yùn)行時(shí)發(fā)現(xiàn)類(lèi)型錯(cuò)誤。
TypeScript 為社區(qū)提供了一種更動(dòng)態(tài)、功能更全、更安全的方式來(lái)開(kāi)發(fā)目標(biāo)運(yùn)行時(shí)需要 JavaScript 的企業(yè)級(jí)應(yīng)用程序。
TypeScript 并不是為了取代 JavaScript 而設(shè)計(jì)的。相反,它的目的是通過(guò)使編寫(xiě)、集成、管理和維護(hù)代碼變得更容易來(lái)鼓勵(lì)基于 JavaScript 的平臺(tái)的擴(kuò)散。
JavaScript 驅(qū)動(dòng)的平臺(tái)(例如服務(wù)器上的 NodeJS 和客戶(hù)端上的 ReactJS)繼續(xù)流行。用 TypeScript 編寫(xiě)代碼并將其轉(zhuǎn)換為 JavaScript 的能力是這兩種語(yǔ)言的采用率持續(xù)攀升的原因之一。