長時間自學可算是入職了,不過公司的技術棧和以前學的區別有點大,React+TS,因此就不得不看看TS的一些東西了node
用一篇隨筆來記錄全部本身學習TS的過程typescript
保證有node.js,而後npm install -g typescript,等一下子就行npm
若是報錯並且是權限問題,mac用sudo npm install -g typescript,windows用管理員模式打開cmd安裝便可windows
能夠用tsc -v檢查typescript的版本號,有的話說明安裝成功,或者去你安裝node的文件夾裏看看node_global\node_modules路徑下有沒有typescriptbabel
ts的本質仍是js,不過兩者仍是有區別的,相似於ES6用babel編譯成ES5,也能夠用ts裏自帶的tsc把ts編譯成js函數
例如以下的ts代碼學習
在該目錄下對這個文件用tsc 文件名來編譯,會獲得該ts文件編譯後的一個js文件3d
能夠發現let聲明變化成了var,而後能夠用node 文件名來在node中運行一下這個js(固然也能夠運行ts)對象
js是一個弱類型的語言,也就是說聲明一個變量的時候,沒必要管其具體的類型,並且也能夠隨意修改類型,而ts則對這一點作出了修改blog
ts用變量名:類型的方法聲明變量類型,若是不符合則報錯
greeter函數內部person參數類型爲string,而傳入的user類型爲array,編譯時報錯
另外IDE裏面也會對錯誤提醒
不過即便這樣,node.js仍是會成功地把ts編譯成js
ts裏能夠用interface聲明一個對象,裏面有幾個屬性,以後若是建立這個接口實例,實例中的屬性必須和interface聲明的接口徹底一致,不然報錯
這裏聲明瞭Person這個接口,包括firstName和lastName兩個屬性(固然還有屬性校驗),以後傳入的參數user這個對象的屬性和接口一致,所以編譯不報錯
這裏編譯成功後正常輸出
若是編譯失敗會報錯:Property is missing