国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

反駁來了!放棄TypeScript?說明你無知!

譯文 精選
開發(fā) 前端
JS 文檔和 .d.ts 類型聲明文件無法替代代碼的靜態(tài)類型。它們只是聲明實(shí)體外部 API 的方法,但不允許分析實(shí)體內(nèi)的代碼(函數(shù)、類和其他代碼塊)。

作者 | Robert Vitonsky

編譯 | 云中

幾天前,漢森 (David Heinemeier Hansson)宣布 Turbo8 即將放棄 TypeScript。我心想:放棄就放棄吧,反正我也不知道 Turbo 8 是什么鬼。

然而,在過去的幾年里,一些前端程序員試圖向我推銷“ TypeScript 沒用,只測(cè)著玩玩”的想法。我認(rèn)為,有這種觀點(diǎn)的人要么不關(guān)心代碼質(zhì)量,要么根本不知道 TypeScript 是什么。在這里,我將解釋為什么應(yīng)該使用 TypeScript。

注:本文作者 Vitonsky 是一名超過10年的有著復(fù)雜項(xiàng)目的前端大牛,參與了許多開源項(xiàng)目的開發(fā):比如翻譯網(wǎng)站的瀏覽器插件 Linguist、模塊 UI 工具ElegantUI、翻譯 DOM 節(jié)點(diǎn)的 DomTranslator 庫等等。

1、代碼質(zhì)量控制的“好手”

代碼質(zhì)量控制是一個(gè)保持代碼可維護(hù)性的復(fù)雜過程。你不能僅僅用 100% 的測(cè)試覆蓋代碼,或者審查每個(gè)拉取請(qǐng)求并確保你的代碼是可維護(hù)的,還應(yīng)該讓除你之外的其他人也可以識(shí)別并搞定它。

根本無法保證自己的代碼沒有 bug 的同時(shí)具有完美的可維護(hù)性。你只能在存儲(chǔ)庫中增加防御結(jié)構(gòu),以使其難以推送帶有錯(cuò)誤的“炸彈”代碼。阻止“炸彈”代碼的障礙越多,代碼質(zhì)量就越好。

這意味著你應(yīng)該一起使用所有方法來保護(hù)存儲(chǔ)庫中的代碼:?jiǎn)卧?e2e/集成測(cè)試、代碼審查、代碼分析工具以及維護(hù)清晰的文檔等。

TypeScript 是一個(gè)強(qiáng)大的代碼分析工具;它可以檢測(cè)代碼中的許多缺陷。TypeScript 編譯器迫使程序員確保代碼在類型級(jí)別上是正確的。David 和許多其他人低估了靜態(tài)類型的價(jià)值。

讓我們看看 TypeScript 為代碼質(zhì)量帶來了哪些好處。

2、contract 對(duì)代碼的重要性

靜態(tài)類型允許在代碼中定義 contract。 

type Participant = {
 id: string;
 name: string;
};

function sayHi(participant: Participant) {
 //...
 console.log(`Hi ${participant.name}`);
}

該 sayHi 函數(shù)需要一個(gè)具有精確屬性和精確類型的對(duì)象,并且它不關(guān)心該函數(shù)的用戶將做什么來滿足要求。編譯器確保類型正確。

用戶可能會(huì)提供一個(gè)不符合要求的對(duì)象并將類型強(qiáng)制轉(zhuǎn)換為 any,但這不是函數(shù) sayHi 的問題。這是一種責(zé)任委托,是開發(fā)人員必須理解的一個(gè)重要概念,才能正確使用 TypeScript 并獲得其好處。

程序員必須驗(yàn)證任何不受信任的數(shù)據(jù),例如用戶輸入和其他 IO 數(shù)據(jù),或與 JavaScript 互操作的結(jié)果。驗(yàn)證和設(shè)置類型后,他們可以將數(shù)據(jù)傳遞給 TypeScript 代碼,并相信合同將得到遵守,因?yàn)?TypeScript 編譯器已經(jīng)檢查了代碼。如果程序員強(qiáng)制轉(zhuǎn)換類型,他們必須確保代碼在運(yùn)行時(shí)正確。

如果你將項(xiàng)目中的非相交類型轉(zhuǎn)換為任何非 unknown 的類型(沒有運(yùn)行時(shí)驗(yàn)證),那么代碼質(zhì)量可能存在問題。

contract 可以避免為每個(gè)函數(shù)編寫驗(yàn)證以確保數(shù)據(jù)正確。這對(duì)于性能和代碼整潔度來說都很好,代碼變得愚蠢而簡(jiǎn)單。

3、使用JS造成的不好經(jīng)驗(yàn)和成本

有時(shí)我會(huì)用純 JavaScript 編寫代碼,主要是在瀏覽器控制臺(tái)中,以便在網(wǎng)頁上進(jìn)行快速計(jì)算或數(shù)據(jù)解析。幾個(gè)月前,我為 Node.js 編寫了一個(gè)使用 ChatGPT 翻譯區(qū)域設(shè)置文件的腳本。這些文件包含長(zhǎng)文本,而 ChatGPT 有限制,因此需要一些時(shí)間對(duì)文本進(jìn)行切片、翻譯、在ChatGPT的結(jié)果中查找錯(cuò)誤、根據(jù)需要重新翻譯,然后將切片重新連接在一起。根據(jù)區(qū)域設(shè)置文件的大小,此過程大約需要 3-5 分鐘。

在這個(gè)過程中,由于一些瑣碎的類型錯(cuò)誤,我浪費(fèi)了一些時(shí)間,比如忘記使用 wait,這導(dǎo)致一個(gè)變量包含 Promise,并將“[object Promise]”寫入文件而不是翻譯文本,或者將錯(cuò)誤的對(duì)象作為函數(shù)參數(shù)提供。

TypeScript 消除了這樣的錯(cuò)誤。

4、 TS更面向未來

TypeScript 為你的代碼提供了其他工具分析的潛力,因?yàn)樗砑恿松舷挛摹?/p>

使用 IDE,你可以重命名接口中的屬性,并且實(shí)現(xiàn)該接口的所有實(shí)體將自動(dòng)在各自的位置更新屬性的名稱。

ChatGPT 和 Copilot 等 AI 工具受益于 TypeScript 提供的附加元信息,有可能改進(jìn)代碼分析和代碼生成。這些分析工具可以更好地識(shí)別潛在風(fēng)險(xiǎn)的代碼。

靜態(tài)類型和測(cè)試相得益彰。前端代碼是高度異步的,這使得覆蓋所有可能的測(cè)試用例并考慮所有潛在的代碼狀態(tài),變得非常有挑戰(zhàn)性。TypeScript 迫使程序員處理一個(gè)狀態(tài)可能具有的所有可能情況,從而增強(qiáng)代碼可靠性。

5、類型:復(fù)雜性與質(zhì)量的取舍

漢森還說道說:

“TypeScript 對(duì)我來說只是阻礙。不僅因?yàn)樗枰@式的編譯步驟,還因?yàn)樗谩愋腕w操’污染了代碼,這給我的開發(fā)體驗(yàn)增添了很少的樂趣,而且常常帶來相當(dāng)大的悲傷。應(yīng)該容易的事情變得困難,而困難的事情變成了‘a(chǎn)ny’。所以不用了,謝謝!”

確實(shí),有時(shí)必須編寫重要的類型,才能讓編譯器相信你的數(shù)據(jù)是正確的。但事實(shí)就是這樣:創(chuàng)建高質(zhì)量的可維護(hù)代碼通常需要付出艱苦的努力。

6、結(jié)論:會(huì)用的人不會(huì)抱怨工具

TypeScript 只是一個(gè)工具,如果你簡(jiǎn)單地啟用它,它不會(huì)自動(dòng)提高代碼質(zhì)量。你的項(xiàng)目必須制定正確使用該工具的規(guī)則,以及執(zhí)行這些規(guī)則的架構(gòu)師。規(guī)則越嚴(yán)格越好。

當(dāng)在項(xiàng)目中禁用靜態(tài)類型時(shí),你將失去許多控制代碼質(zhì)量的功能。

JS 文檔和 .d.ts 類型聲明文件無法替代代碼的靜態(tài)類型。它們只是聲明實(shí)體外部 API 的方法,但不允許分析實(shí)體內(nèi)的代碼(函數(shù)、類和其他代碼塊)。 

原文鏈接:https://vitonsky.net/blog/2023/09/08/typescript-and-code-quality/

責(zé)任編輯:武曉燕 來源: 51CTO技術(shù)棧
相關(guān)推薦

2011-06-23 14:38:44

諾基亞埃洛普MeeGo

2022-12-19 07:38:02

Rust項(xiàng)目代碼

2023-09-08 10:21:46

TypeScript前端工具

2013-07-12 09:59:58

Android 5.0

2025-08-01 08:26:45

2022-11-29 07:48:16

2024-03-06 08:15:03

@Autowired注入方式Spring

2019-12-09 10:02:41

泛型ypeScript前端

2015-10-09 13:29:06

黑莓盈利手機(jī)

2022-04-28 21:53:52

TypeScriptany類型

2022-03-09 20:18:49

TypeScript類型函數(shù)

2018-04-25 08:14:36

霧計(jì)算云計(jì)算物聯(lián)網(wǎng)

2023-11-15 20:51:18

TypeScript前端

2018-04-25 15:53:12

霧計(jì)算

2020-08-25 17:50:36

Redis數(shù)據(jù)庫內(nèi)存

2009-11-20 10:03:21

Chrome OS桌面應(yīng)用

2020-08-18 10:35:18

JWTredis認(rèn)證

2022-07-19 08:04:04

HTTP應(yīng)用層協(xié)議

2009-11-03 08:56:19

Windows 7系統(tǒng)發(fā)布

2025-01-13 06:30:00

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产999精品视频| 美国av在线播放| 欧美日韩女优| 在线精品亚洲一区二区不卡| 欧美成人黄色网址| 99久久婷婷国产| 免费成人进口网站| 日韩精品每日更新| 精品中文字幕人| 欧美+日本+国产+在线a∨观看| 国产91精品网站| 最新精品国偷自产在线| 91精品国产91久久久久福利| 久久久久se| 亚洲黄色三级| 成人黄色片视频网站| 国产欧美日韩精品高清二区综合区| 欧美精品免费播放| 精品一区二区三区中文字幕视频| 亚洲最新中文字幕| 欧美三级精品| 亚洲三级 欧美三级| 国产精欧美一区二区三区蓝颜男同| 精品久久久三级丝袜| 亚洲综合影视| 日韩精品免费视频| 蜜桃视频成人m3u8| 日韩中文字幕第一页| 国产成人免费av一区二区午夜| 欧美成人激情图片网| 极品束缚调教一区二区网站| 国产精品av免费在线观看| 色婷婷亚洲mv天堂mv在影片| 91在线高清视频| 国语精品一区| 在线看成人av电影| 91在线看国产| 国产日本韩国在线播放| 亚洲综合无码一区二区| 在线视频您懂的| 91精品欧美一区二区三区综合在| 在线观看三级视频| 亚洲片av在线| 日韩在线成人| 91久久大香伊蕉在人线| 六月丁香综合| 少妇人妻在线视频| 亚洲男人的天堂在线aⅴ视频| 你懂的免费在线观看视频网站| 国产精品高颜值在线观看| 亚洲成色777777在线观看影院| 免费观看一级欧美片| 久久免费视频在线| 91视频综合| 国产高清免费在线| 欧美激情一区在线| 亚洲国产资源| 精品伊人久久97| 日韩高清电影免费| 国产在线一区二区三区欧美| 国产精品白丝jk黑袜喷水| 99热热99| 黄页网址大全在线观看| 在线一区二区三区四区| 免费看男女www网站入口在线 | 日韩视频1区| 91人成网站www| 国产福利一区二区三区视频| 成人伦理视频网站| 日韩三级视频中文字幕| 久久伊人影院| 国产精成人品localhost| 国产精品自拍一区| 婷婷丁香六月天| 国产亚洲精品91在线| 一区二区三区免费在线看| 成人夜色视频网站在线观看| 国产成人在线播放| 伊人久久综合| 国产欧美在线一区| 日本道色综合久久| www.一区| 成人av网站观看| 成人高清视频在线| 国产午夜在线观看| 欧美成人黑人xx视频免费观看| 亚洲精品麻豆| 男人j桶女人的网站| 亚洲国产91色在线| 国内精品久久久久久99蜜桃| 樱空桃在线播放| 欧美日韩亚洲一区二区三区| 亚洲精品第一| 视频一区亚洲 | 最新欧美电影| 不卡一区二区三区视频| 337p粉嫩大胆色噜噜噜噜亚洲| 无遮挡的视频在线观看| 亚洲欧美在线播放| 中文字幕人成乱码在线观看| 国产成人精品最新| 国产一区二区精品久久91| 女人高潮特级毛片| 亚洲欧美一区二区三区久久| 婷婷成人基地| 国产嫩草在线观看| 性一交一乱一伧国产女士spa| 日韩成人动漫| 国产一区二区三区美女| 日韩加勒比系列| 日韩精品在线观看视频| 欧美大人香蕉在线| 无码人妻h动漫| 亚洲成人久久久| 国产精品草草| 国产成人午夜精品| 亚洲一区www| 日本欧美一区二区三区乱码| 国产中文字幕在线观看| 日本久久中文字幕| 2020国产精品| 欧美v亚洲v综合v国产v仙踪林| 亚洲一二三区在线| 欧美二区三区91| 自产国语精品视频| 情趣视频网站在线免费观看| 欧美高清不卡在线| 成人av网站在线观看免费| 国产激情在线| 久久综合福利| 欧美日本不卡视频| 黄色亚洲大片免费在线观看| 在线国产视频| 91在线直播亚洲| 欧美午夜宅男影院在线观看| 狠狠色狠狠色综合婷婷tag| 男人艹女人在线观看| 欧美—级a级欧美特级ar全黄| 大陆成人av片| 国产成人精品一区二区三区免费| 亚洲精品一卡二卡三卡四卡| 欧美精品123区| 日本少妇一区二区| 成年人黄色大片在线| 国产对白在线播放| 亚洲欧美在线免费| 国产老女人精品毛片久久| www.成人影院| 人妻久久久一区二区三区| 中文在线免费二区三区| 国产免费观看久久黄| 一区二区三区丝袜| 亚洲成人av中文字幕| 色综合视频在线观看| 91亚洲精华国产精华精华液| 成人免费网站视频www| 97精品视频在线观看| 亚洲欧美国产毛片在线| 日韩亚洲视频| 欧美精品一二三区| 久久久777| 免费福利视频一区二区三区| 国内外免费激情视频| 欧美在线视频在线播放完整版免费观看| 亚洲最色的网站| 99成人免费视频| 欧美freesex黑人又粗又大| 成人免费在线小视频| 人人澡人人澡人人看欧美| 欧美日韩一区二区精品| 日韩高清不卡一区二区| 国产精品亲子伦av一区二区三区| 韩国视频一区二区三区| 国产美女久久精品| 在线不卡中文字幕播放| 国产一区二区三区日韩| 成人精品动漫一区二区三区| 蜜臀一区二区三区| 日本一区二区三区精品视频| 中文字幕国产精品| 亚洲一区自拍偷拍| 日本在线不卡视频| 国产精品玖玖玖在线资源| 国产精品免费观看| 国产精品av免费观看| 奇米4444一区二区三区| 欧美一区二区三区四区高清| 99久久久无码国产精品| 日韩a级大片| 国产视频视频一区| 天天做天天摸天天爽国产一区| 亚洲精品成a人| 极品美女扒开粉嫩小泬| 国产999在线观看| 91精品综合久久久久久| 久久精品夜夜夜夜久久| 狠狠入ady亚洲精品经典电影| 四虎视频在线精品免费网址| 国产高清在线| 91av资源网|