從0開始的TypeScript(一)
總所周知,每個(gè)新的系列文章第一篇都是比較簡(jiǎn)單的介紹,本次TypeScript也不例外,第一篇先水一下了
TypeScript :cyclone:
在現(xiàn)在學(xué)習(xí)typescript的過程中,下面這些網(wǎng)站鏈接幫助還是挺大的,特別是書棧里面的《深入理解 TypeScript》,書棧真的可以對(duì)白嫖黨:smiling_imp:安利一下
TypeScript學(xué)習(xí)參考鏈接:speech_balloon::
https://www.tslang.cn/index.html
https://chinese.freecodecamp.org/forum/t/topic/506
https://www.bookstack.cn/explore?cid=81&tab=popular
https://basarat.gitbook.io/typescript/getting-started/why-typescript
TypeScript 介紹 :loudspeaker:
TypeScript是JavaScript的超集,具有靜態(tài)類型特性, 也被稱為JavaScript that scales(可擴(kuò)展的JavaScript)
TypeScript使用原因
JavaScript不適用于大型應(yīng)用開發(fā),JavaScript是一種沒有類型系統(tǒng)的動(dòng)態(tài)語言,變量可以是任何類型
而類型系統(tǒng)能夠提高代碼質(zhì)量和可讀性,使代碼庫更易于維護(hù)或重構(gòu)。 最重要的是可以在編譯時(shí)捕獲錯(cuò)誤,而不是在運(yùn)行時(shí)捕獲。
TypeScript能在編譯時(shí)檢查不同部分代碼的正確性。 在編譯時(shí)檢查出錯(cuò)誤,便于開發(fā)者發(fā)現(xiàn)錯(cuò)誤的位置和具體問題,如果運(yùn)行時(shí)才檢查出錯(cuò)誤,則需要跟蹤復(fù)雜的堆棧,來進(jìn)行調(diào)試。
:thumbsup: TypeScript優(yōu)缺點(diǎn) :thumbsdown:
優(yōu)點(diǎn):
在開發(fā)周期中能夠更早捕獲潛在的錯(cuò)誤
管理大型代碼庫
更易于重構(gòu)
更易于團(tuán)隊(duì)合作: 代碼的耦合性越強(qiáng),不同開發(fā)人員訪問代碼庫時(shí)越不容易造成無意破壞
文檔特性: 類型本身是一種文檔信息,方便以后開發(fā)者本人查詢
TypeScript 擁抱了 ES6 規(guī)范,也支持部分 ESNext 草案的規(guī)范
缺點(diǎn):
需要額外的學(xué)習(xí): 短期放緩進(jìn)度與長(zhǎng)期提高效率之間權(quán)衡
類型錯(cuò)誤可能多種多樣
配置極大地影響運(yùn)行
可能和一些庫結(jié)合的不是很完美
TypeScript安裝 :hammer:
TypeScript的安裝非常方便,可以使用npm進(jìn)行下載 (ps:一般而言都是全局安裝的)
npm:
npm install -g typescript
cnpm:
cnpm install -g typescript
yarn:
yarn global add typescript
查看是否安裝完成,在終端中輸入命令查看版本號(hào): tsc -v
TypeScript文件的后綴是 .ts, 在cmd中運(yùn)行命令是:tsc 文件名.ts。
此命令并不會(huì)直接運(yùn)行起ts文件,而是會(huì)在當(dāng)前文件夾下生成一個(gè)同樣文件名的js文件。
TypeScript類型系統(tǒng) :bar_chart:
TypeScript有兩個(gè)主要目標(biāo):
為JavaScript提供可選的類型系統(tǒng)
提供從未來JavaScript版本到當(dāng)前JavaScript引擎的功能
類型已被證明能夠提高代碼質(zhì)量和可理解性。(大型團(tuán)隊(duì)如谷歌、微軟、Facebook不斷得出這個(gè)結(jié)論)
在C語言、Java語言等強(qiáng)類型語言當(dāng)中,對(duì)于數(shù)值字符串等變量的定義都是嚴(yán)格的,使用int,string定義。 但是在JavaScript中,使用var、let等進(jìn)行定義。
強(qiáng)類型定義語言:強(qiáng)制數(shù)據(jù)類型定義的語言。也就是說,一旦一個(gè)變量被指定了某個(gè)數(shù)據(jù)類型,如果不經(jīng)過強(qiáng)制轉(zhuǎn)換,那么它就永遠(yuǎn)是這個(gè)數(shù)據(jù)類型了。舉個(gè)例子:如果你定義了一個(gè)整型變量 a,那么程序根本不可能將 a 當(dāng)作字符串類型處理。強(qiáng)類型定義語言是類型安全的語言。
弱類型定義語言:數(shù)據(jù)類型可以被忽略的語言。它與強(qiáng)類型定義語言相反, 一個(gè)變量可以賦不同數(shù)據(jù)類型的值。強(qiáng)類型定義語言在速度上可能略遜色于弱類型定義語言,但是強(qiáng)類型定義語言帶來的嚴(yán)謹(jǐn)性能夠有效的避免許多錯(cuò)誤。另外,“這門語言是不是動(dòng)態(tài)語言”與“這門語言是否類型安全”之間是完全沒有聯(lián)系的!
在進(jìn)行重構(gòu)時(shí),類型回提高敏捷性。 編譯器捕獲錯(cuò)誤比在運(yùn)行時(shí)好
類型是可以擁有最佳文檔的形式之一。 函數(shù)簽名是定理,函數(shù)體是證明
一些關(guān)鍵點(diǎn):
TypeScript類型系統(tǒng)設(shè)計(jì)是可選的,JavaScript即是TypeScript;
TypeScript不會(huì)阻止JavaScript的運(yùn)行,即使存在類型錯(cuò)誤也不例外,這可以讓JavaScript逐步遷移到TypeScript;
JavaScript TypeScript web前端
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。