沒想到第一次寫博客,竟然寫的不是C#,而是TypeScript,不過共同點就是--同一個爸爸,Anders Hejlsberg(安德斯·海爾斯伯格,不標上中文都不知道怎么念有木有)。
首先介紹一下TypeScript(下面就簡稱ts),直接從官網上摘得:
TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.
Any browser. Any host. Any OS. Open source.
簡單來說,ts就是Javascript的一個語法糖。添加了靜態類型檢查和面向對象的一些特性。語法上接近C#,但是也有些ActionScript的影子(畢竟都是ECMAScript標准的實現)。ts的編譯器叫tsc,他本身也是用js寫的。最后編譯得到的就是原生的js腳本。ts的定位應該就是讓人們使用更加嚴格的js,這點從ts嚴格遵循es的標准也可以看出來。
對於很多人來說,生態也是一個主要關注的問題。從ts的發展上來看,微軟並不打算自己打造ts生態,而是通過和其他一些大廠合作,比如google,facebook等,所以angular和react現在都已經支持ts了。這樣大家分工也比較明確。
還有一個比較關注的問題,應該就是第三方js庫的支持了。如果想讓第三方使用ts重寫類庫,這顯然代價太大了,而且人家也未必願意,畢竟ts剛出來。所以這點ts在設計的時候也已經考慮到了。通過一個聲明文件(*.d.ts),把原先js庫中的api暴露出來,就能直接調用原來的js類庫。
ts具體的語法細節,可以參考官網的文檔,已經很詳細了。https://www.tslang.cn/。
下面我們就來實踐一下。
首先是搭建環境,ts需要依賴nodejs,所以我們先下載nodejs並安裝。
其次是下載ts的編譯器。目前最新版的是2.2.2。這里需要注意一下,就是windows下的編譯器tsc.exe,在vs2015之前,最高只支持到ts 1.8.5,官方也明確說了2.0開始不再支持vs2015之前的版本。vs2015可以通過vs插件來下載tsc,並且支持最新的2.2.2,但是vs2017中,tsc不再作為一個獨立的vs插件了,貌似和vs2017已經綁定更新了,目前vs2017最新的版本只到2.1.5。所以直接在windows下編譯typescript是比較蛋疼的。
但是ts是跨平台的,所以我推薦使用linux下的tsc編譯器(更新及時),他是作為一個npm包來安裝的,管理起來十分方便。並且在vscode的控制台下,可以直接使用linux下的tsc可執行文件。(當然你也可以通過cygwin來編譯typescript,這里就不細說了)。
通過npm直接將typescript安裝到全局目錄下。

下面我們就拿typescript來練練手。
我們先創建一個Person類型的抽象基類:

Gender類型是我們定義的一個枚舉:

然后我們再定義個打招呼的接口:

下面 我們來實現一個女朋友的類((●ˇ∀ˇ●))來實現這個抽象類和接口:
由於是女朋友,所以性別當然默認是女的啦。

然后就是激動人心的創建女朋友環節了,讓我們來實例化一個女朋友:

最后就是編譯了,
。由於我是用vscode寫的,所以要運行還得配置一下launch.json。
最后運行結果:

由於是第一次寫博客,思路和語言組織都很粗糙,望見諒。接下來我會繼續寫ts相關的文章,希望和大家一起學習!
