為什么要用typescript?
為什么要用typescript?
1、從開發(fā)效率上看,雖然需要多寫一些類型定義代碼,但TS在VSCode、WebStorm等IDE下可以做到智能提示,智能感知bug,同時(shí)我們項(xiàng)目常用的一些第三方類庫(kù)框架都有TS類型聲明,我們也可以給那些沒有TS類型聲明的穩(wěn)定模塊寫聲明文件,這在團(tuán)隊(duì)協(xié)作項(xiàng)目中可以提升整體的開發(fā)效率。
2、從可維護(hù)性上看,長(zhǎng)期迭代維護(hù)的項(xiàng)目開發(fā)和維護(hù)的成員會(huì)有很多,團(tuán)隊(duì)成員水平會(huì)有差異,而軟件具有熵的特質(zhì),長(zhǎng)期迭代維護(hù)的項(xiàng)目總會(huì)遇到可維護(hù)性逐漸降低的問題,有了強(qiáng)類型約束和靜態(tài)檢查,以及智能IDE的幫助下,可以降低軟件腐化的速度,提升可維護(hù)性,且在重構(gòu)時(shí),強(qiáng)類型和靜態(tài)類型檢查會(huì)幫上大忙,甚至有了類型定義,會(huì)不經(jīng)意間增加重構(gòu)的頻率(更安全、放心)。
3、從線上運(yùn)行時(shí)質(zhì)量上看,我們現(xiàn)在的SPA項(xiàng)目的很多bug都是由于一些調(diào)用方和被調(diào)用方(如組件模塊間的協(xié)作、接口或函數(shù)的調(diào)用)的數(shù)據(jù)格式不匹配引起的,由于TS有編譯期的靜態(tài)檢查,讓我們的bug盡可能消滅在編譯器,加上IDE有智能糾錯(cuò),編碼時(shí)就能提前感知bug的存在,我們的線上運(yùn)行時(shí)質(zhì)量會(huì)更為穩(wěn)定可控。
TS適合大規(guī)模JavaScript應(yīng)用,正如他的官方宣傳語JavaScript that scales
。從以下幾點(diǎn)可以看到TS在團(tuán)隊(duì)協(xié)作、可維護(hù)性、易讀性、穩(wěn)定性(編譯期提前暴露bug)等方面上有著明顯的好處:
加上了類型系統(tǒng),對(duì)于閱讀代碼的人和編譯器都是友好的。對(duì)閱讀者來說,類型定義加上IDE的智能提示,增強(qiáng)了代碼的易讀型;對(duì)于編譯器來說,類型定義可以讓編譯器揪出隱藏的bug。
類型系統(tǒng)+靜態(tài)分析檢查+智能感知/提示,使大規(guī)模的應(yīng)用代碼質(zhì)量更高,運(yùn)行時(shí)bug更少,更方便維護(hù)。
有類似VSCode這樣配套的IDE支持,方便的查看類型推斷和引用關(guān)系,可以更方便和安全的進(jìn)行重構(gòu),再也不用全局搜索,一個(gè)個(gè)修改了。
給應(yīng)用配置、應(yīng)用狀態(tài)、前后端接口及各種模塊定義類型,整個(gè)應(yīng)用都是一個(gè)個(gè)的類型定義,使協(xié)作更為方便、高效和安全。
typescript在開發(fā)中能干啥?
1、強(qiáng)數(shù)據(jù)類型;
2、方法傳參個(gè)數(shù)限制和提示;
3、方法傳參類型限制;
4、數(shù)據(jù)類型接口定義;
5、模塊聲明;
typescript是JavaScript的補(bǔ)充和擴(kuò)展,繼承了js的所有特性,并擴(kuò)展了ts自身的擴(kuò)展庫(kù),使得ts更加強(qiáng)大和完善。可以說,ts是未來的js最佳替代品和選擇。關(guān)于ts的好處還有很多,這里不做過多的贅述和演示,想要了解ts的伙伴,請(qǐng)移步到ts官網(wǎng)閱讀。
以上內(nèi)容均為個(gè)人學(xué)習(xí)總結(jié)和引用筆記,不做強(qiáng)制性解釋和約束,如有侵權(quán),私聊刪除。關(guān)于ts的優(yōu)勢(shì)的看法,僅供參考,具體技術(shù)選型,根據(jù)實(shí)際需要而定。