TypeScript和JavaScript哪種語言更先進
近兩年來最火爆的技術棧毫無爭議的是JavaScript,隨着ES6的普及,不管是從前端的瀏覽器來看,還是后端的NodeJS場景,JavaScript技術棧不斷的向世界證明自己的價值。JavaScript代碼越寫越大,眾所周知,JavaScript是一門動態語言,缺少靜態類型檢查,這樣就很難在編譯階段排除更多的問題,當然,這就是動態語言的魅力所在,運行時動態處理類型,在我們寫代碼的時候就可以很更靈活。為了給JavaScript增加類型檢查以及一些其他能力TypeScript應運而生,不能說TypeScript有多牛,只能說TypeScript順應了時代需要。那么說了半天TypeScript和JavaScript哪種語言更先進呢?
讓我們從以下方面來談談,
1.從歷史包袱角度說JavaScript的包袱是前向兼容,即使老版本的ES中有落后的方面,為了兼容,也要支持,而TypeScript宣稱完全兼容JavaScript,這導致了TypeScript繼承了JavaScript一切的缺點,所以從這點上看可以說是不相伯仲。
2.TypeScript的作者也是C#的作者,這導致了TypeScript從C#繼承了很多優雅的設計比如枚舉,泛型等語言特性,這讓TypeScript增色不少。
3.TypeScript帶有編譯期類型檢查,在寫大程序的時候有優勢,更容易重構和讓別人理解代碼的意圖,但是這帶來了一個問題就是語法上的拖沓冗長,不夠漂亮。
4.知道Groovy和Java的朋友和容易看出來,TypeScript和JavaScript的關系實際上就是Groovy和Java的關系,一個動態,一個靜態,一個靈活,一個穩健,哪個更先進,要看你從哪個方面來說了。
5. 下面是完成同樣功能的兩段簡單代碼,大家可以簡單比較一下,看看自己喜歡那種品位。
TypeScript Code: class Greeter { greeting: string; constructor (message: string) { this.greeting = message; } greet() { return "Hello, " + this.greeting; } }
JavaScript Code: var Greeter = (function () { function Greeter(message) { this.greeting = message; } Greeter.prototype.greet = function () { return "Hello, " + this.greeting; }; return Greeter; })();
總結
TypeScript is c# version JavaScript, JavaScript is groovy version Java of Typescript which one is better depends on what you are going to do.