日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

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

來源: 責編: 時間:2023-09-18 21:42:25 414觀看
導讀作者 | Robert Vitonsky編譯 | 云中幾天前,漢森 (David Heinemeier Hansson)宣布 Turbo8 即將放棄 TypeScript。我心想:放棄就放棄吧,反正我也不知道 Turbo 8 是什么鬼。然而,在過去的幾年里,一些前端程序員試圖向我推銷“

作者 | Robert VitonskyYrQ28資訊網——每日最新資訊28at.com

編譯 | 云中YrQ28資訊網——每日最新資訊28at.com

YrQ28資訊網——每日最新資訊28at.com

幾天前,漢森 (David Heinemeier Hansson)宣布 Turbo8 即將放棄 TypeScript。我心想:放棄就放棄吧,反正我也不知道 Turbo 8 是什么鬼。YrQ28資訊網——每日最新資訊28at.com

YrQ28資訊網——每日最新資訊28at.com

然而,在過去的幾年里,一些前端程序員試圖向我推銷“ TypeScript 沒用,只測著玩玩”的想法。我認為,有這種觀點的人要么不關心代碼質量,要么根本不知道 TypeScript 是什么。在這里,我將解釋為什么應該使用 TypeScript。YrQ28資訊網——每日最新資訊28at.com

YrQ28資訊網——每日最新資訊28at.com

注:本文作者 Vitonsky 是一名超過10年的有著復雜項目的前端大牛,參與了許多開源項目的開發:比如翻譯網站的瀏覽器插件 Linguist、模塊 UI 工具ElegantUI、翻譯 DOM 節點的 DomTranslator 庫等等。YrQ28資訊網——每日最新資訊28at.com

1、代碼質量控制的“好手”

YrQ28資訊網——每日最新資訊28at.com

代碼質量控制是一個保持代碼可維護性的復雜過程。你不能僅僅用 100% 的測試覆蓋代碼,或者審查每個拉取請求并確保你的代碼是可維護的,還應該讓除你之外的其他人也可以識別并搞定它。YrQ28資訊網——每日最新資訊28at.com

YrQ28資訊網——每日最新資訊28at.com

根本無法保證自己的代碼沒有 bug 的同時具有完美的可維護性。你只能在存儲庫中增加防御結構,以使其難以推送帶有錯誤的“炸彈”代碼。阻止“炸彈”代碼的障礙越多,代碼質量就越好。YrQ28資訊網——每日最新資訊28at.com

YrQ28資訊網——每日最新資訊28at.com

這意味著你應該一起使用所有方法來保護存儲庫中的代碼:單元/e2e/集成測試、代碼審查、代碼分析工具以及維護清晰的文檔等。YrQ28資訊網——每日最新資訊28at.com

YrQ28資訊網——每日最新資訊28at.com

TypeScript 是一個強大的代碼分析工具;它可以檢測代碼中的許多缺陷。TypeScript 編譯器迫使程序員確保代碼在類型級別上是正確的。David 和許多其他人低估了靜態類型的價值。YrQ28資訊網——每日最新資訊28at.com

YrQ28資訊網——每日最新資訊28at.com

讓我們看看 TypeScript 為代碼質量帶來了哪些好處。YrQ28資訊網——每日最新資訊28at.com

2、contract 對代碼的重要性

YrQ28資訊網——每日最新資訊28at.com

靜態類型允許在代碼中定義 contract。 YrQ28資訊網——每日最新資訊28at.com

YrQ28資訊網——每日最新資訊28at.com

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

YrQ28資訊網——每日最新資訊28at.com

該 sayHi 函數需要一個具有精確屬性和精確類型的對象,并且它不關心該函數的用戶將做什么來滿足要求。編譯器確保類型正確。YrQ28資訊網——每日最新資訊28at.com

YrQ28資訊網——每日最新資訊28at.com

用戶可能會提供一個不符合要求的對象并將類型強制轉換為 any,但這不是函數 sayHi 的問題。這是一種責任委托,是開發人員必須理解的一個重要概念,才能正確使用 TypeScript 并獲得其好處。YrQ28資訊網——每日最新資訊28at.com

YrQ28資訊網——每日最新資訊28at.com

程序員必須驗證任何不受信任的數據,例如用戶輸入和其他 IO 數據,或與 JavaScript 互操作的結果。驗證和設置類型后,他們可以將數據傳遞給 TypeScript 代碼,并相信合同將得到遵守,因為 TypeScript 編譯器已經檢查了代碼。如果程序員強制轉換類型,他們必須確保代碼在運行時正確。YrQ28資訊網——每日最新資訊28at.com

YrQ28資訊網——每日最新資訊28at.com

如果你將項目中的非相交類型轉換為任何非 unknown 的類型(沒有運行時驗證),那么代碼質量可能存在問題。YrQ28資訊網——每日最新資訊28at.com

YrQ28資訊網——每日最新資訊28at.com

contract 可以避免為每個函數編寫驗證以確保數據正確。這對于性能和代碼整潔度來說都很好,代碼變得愚蠢而簡單。YrQ28資訊網——每日最新資訊28at.com

3、使用JS造成的不好經驗和成本

YrQ28資訊網——每日最新資訊28at.com

有時我會用純 JavaScript 編寫代碼,主要是在瀏覽器控制臺中,以便在網頁上進行快速計算或數據解析。幾個月前,我為 Node.js 編寫了一個使用 ChatGPT 翻譯區域設置文件的腳本。這些文件包含長文本,而 ChatGPT 有限制,因此需要一些時間對文本進行切片、翻譯、在ChatGPT的結果中查找錯誤、根據需要重新翻譯,然后將切片重新連接在一起。根據區域設置文件的大小,此過程大約需要 3-5 分鐘。YrQ28資訊網——每日最新資訊28at.com

YrQ28資訊網——每日最新資訊28at.com

在這個過程中,由于一些瑣碎的類型錯誤,我浪費了一些時間,比如忘記使用 wait,這導致一個變量包含 Promise,并將“[object Promise]”寫入文件而不是翻譯文本,或者將錯誤的對象作為函數參數提供。YrQ28資訊網——每日最新資訊28at.com

YrQ28資訊網——每日最新資訊28at.com

TypeScript 消除了這樣的錯誤。YrQ28資訊網——每日最新資訊28at.com

4、 TS更面向未來

YrQ28資訊網——每日最新資訊28at.com

TypeScript 為你的代碼提供了其他工具分析的潛力,因為它添加了上下文。YrQ28資訊網——每日最新資訊28at.com

YrQ28資訊網——每日最新資訊28at.com

使用 IDE,你可以重命名接口中的屬性,并且實現該接口的所有實體將自動在各自的位置更新屬性的名稱。YrQ28資訊網——每日最新資訊28at.com

YrQ28資訊網——每日最新資訊28at.com

ChatGPT 和 Copilot 等 AI 工具受益于 TypeScript 提供的附加元信息,有可能改進代碼分析和代碼生成。這些分析工具可以更好地識別潛在風險的代碼。YrQ28資訊網——每日最新資訊28at.com

YrQ28資訊網——每日最新資訊28at.com

靜態類型和測試相得益彰。前端代碼是高度異步的,這使得覆蓋所有可能的測試用例并考慮所有潛在的代碼狀態,變得非常有挑戰性。TypeScript 迫使程序員處理一個狀態可能具有的所有可能情況,從而增強代碼可靠性。YrQ28資訊網——每日最新資訊28at.com

5、類型:復雜性與質量的取舍

YrQ28資訊網——每日最新資訊28at.com

漢森還說道說:YrQ28資訊網——每日最新資訊28at.com

YrQ28資訊網——每日最新資訊28at.com

“TypeScript 對我來說只是阻礙。不僅因為它需要顯式的編譯步驟,還因為它用‘類型體操’污染了代碼,這給我的開發體驗增添了很少的樂趣,而且常常帶來相當大的悲傷。應該容易的事情變得困難,而困難的事情變成了‘any’。所以不用了,謝謝!”YrQ28資訊網——每日最新資訊28at.com

YrQ28資訊網——每日最新資訊28at.com

確實,有時必須編寫重要的類型,才能讓編譯器相信你的數據是正確的。但事實就是這樣:創建高質量的可維護代碼通常需要付出艱苦的努力。YrQ28資訊網——每日最新資訊28at.com

YrQ28資訊網——每日最新資訊28at.com

6、結論:會用的人不會抱怨工具

YrQ28資訊網——每日最新資訊28at.com

TypeScript 只是一個工具,如果你簡單地啟用它,它不會自動提高代碼質量。你的項目必須制定正確使用該工具的規則,以及執行這些規則的架構師。規則越嚴格越好。YrQ28資訊網——每日最新資訊28at.com

YrQ28資訊網——每日最新資訊28at.com

當在項目中禁用靜態類型時,你將失去許多控制代碼質量的功能。YrQ28資訊網——每日最新資訊28at.com

YrQ28資訊網——每日最新資訊28at.com

JS 文檔和 .d.ts 類型聲明文件無法替代代碼的靜態類型。它們只是聲明實體外部 API 的方法,但不允許分析實體內的代碼(函數、類和其他代碼塊)。 YrQ28資訊網——每日最新資訊28at.com

YrQ28資訊網——每日最新資訊28at.com

原文鏈接:https://vitonsky/blog/2023/09/08/typescript-and-code-quality/YrQ28資訊網——每日最新資訊28at.com

YrQ28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-10491-0.html反駁來了!放棄TypeScript?說明你無知!

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 得物SRE視角下的藍綠發布

下一篇: Nginx map 實現時間格式轉換

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
99热在这里有精品免费| 欧美色精品天天在线观看视频| 99精品久久| 制服丝袜亚洲播放| 小黄鸭精品aⅴ导航网站入口| 久久久精彩视频| 奶水喷射视频一区| 欧美体内she精视频| 国产亚洲人成a一在线v站| 黄网站免费久久| 亚洲精品在线二区| 午夜精品福利一区二区蜜股av| 久久久噜噜噜久久人人看| 欧美精品在线观看一区二区| 国产伦理精品不卡| 最近中文字幕mv在线一区二区三区四区 | 欧美v亚洲v综合ⅴ国产v| 欧美日韩亚洲高清一区二区| 国产日韩欧美精品在线| 亚洲精品少妇| 久久激情婷婷| 欧美三级视频在线| 在线观看91精品国产入口| 亚洲天堂视频在线观看| 噜噜噜91成人网| 国产精品久久久久一区| 尤物yw午夜国产精品视频明星| 国产精品99久久久久久久vr| 久久久综合激的五月天| 国产精品爱久久久久久久| **性色生活片久久毛片| 亚洲欧美网站| 欧美日韩免费一区二区三区视频| 韩国欧美国产1区| 亚洲一区二区高清视频| 欧美国产激情| 国内自拍亚洲| 亚洲欧美日韩系列| 欧美日韩国产综合在线| 在线看欧美视频| 欧美影视一区| 国产精品豆花视频| 亚洲免费电影在线| 久久天堂av综合合色| 国产精品日本一区二区| 夜夜嗨av一区二区三区| 农村妇女精品| 韩日成人在线| 欧美在线免费观看视频| 国产精品白丝jk黑袜喷水| 亚洲精品久久久久中文字幕欢迎你 | 亚洲高清电影| 久久黄色级2电影| 国产精品久久久一区麻豆最新章节 | 亚洲国产91色在线| 久久精品导航| 国产精品视频久久| 亚洲午夜电影在线观看| 欧美日韩亚洲一区二区三区四区 | 国产精品二区三区四区| 99在线精品视频| 欧美激情精品久久久久久久变态| 狠狠色丁香婷综合久久| 久久成人精品无人区| 国产欧美日韩视频在线观看 | 亚洲人午夜精品| 蜜臀av一级做a爰片久久| 极品尤物av久久免费看| 久久精品最新地址| 国产综合欧美| 久久精品亚洲一区二区三区浴池| 国产日韩欧美一区在线 | 亚洲欧美精品在线| 国产精品日韩| 亚洲一区二区三区视频| 欧美色欧美亚洲另类二区| 一区二区精品国产| 欧美视频在线观看免费网址| 一区二区三区.www| 欧美视频一区二区三区四区| 中日韩视频在线观看| 欧美性做爰毛片| 国产精品天美传媒入口| 中文高清一区| 欧美午夜在线| 亚洲欧美日韩中文在线制服| 国产伦精品免费视频| 欧美在线免费播放| 精品动漫一区二区| 美女黄网久久| 亚洲精品视频啊美女在线直播| 欧美精品一区三区| 亚洲婷婷综合色高清在线| 国产精品久久999| 午夜在线精品偷拍| 国内一区二区在线视频观看| 男男成人高潮片免费网站| 亚洲精品影院在线观看| 欧美香蕉视频| 欧美一区二区三区四区视频| 国内精品久久久久影院优| 美国成人毛片| 亚洲免费av观看| 国产精品夫妻自拍| 欧美怡红院视频一区二区三区| 国产日韩欧美一区二区三区在线观看| 久久久久.com| 91久久国产综合久久| 欧美日韩大片| 销魂美女一区二区三区视频在线| 国产一区二区三区在线观看精品| 久久综合亚州| 99re6热在线精品视频播放速度| 国产精品高精视频免费| 久久精品国产第一区二区三区最新章节| 极品尤物久久久av免费看| 欧美激情a∨在线视频播放| 中文av一区特黄| 国产日韩欧美综合一区| 美女爽到呻吟久久久久| 中文在线不卡视频| 狠狠色丁香婷婷综合久久片| 欧美理论电影在线观看| 中文亚洲欧美| 国产字幕视频一区二区| 欧美激情性爽国产精品17p| 亚洲欧美大片| 亚洲国产婷婷| 国产精品欧美久久| 久久综合五月| 亚洲影院在线观看| 1024成人| 国产精品久久九九| 久久亚洲精品伦理| 亚洲少妇最新在线视频| 精品不卡一区二区三区| 欧美性猛交99久久久久99按摩 | 尤物九九久久国产精品的分类| 欧美日韩精品免费看| 欧美一区二区在线播放| 亚洲全部视频| 国产区在线观看成人精品| 欧美高潮视频| 欧美一区二区三区视频| 亚洲免费观看| 国产亚洲欧美中文| 欧美三区在线观看| 久久婷婷人人澡人人喊人人爽| av72成人在线| 在线观看欧美| 国产精品自拍视频| 欧美另类在线播放| 久久久99国产精品免费| 亚洲婷婷综合色高清在线 | 亚洲精品乱码久久久久久| 国产亚洲精品一区二555| 欧美日韩高清在线播放| 久久亚洲影音av资源网| 亚洲综合色丁香婷婷六月图片| 亚洲国产日韩欧美在线动漫| 国产精品综合av一区二区国产馆| 欧美国产视频日韩| 久久久av毛片精品| 亚洲欧美中文日韩在线| 日韩午夜在线电影| 在线观看国产一区二区| 国产欧美日韩视频一区二区| 国产精品v欧美精品∨日韩| 欧美激情精品久久久久久免费印度| 欧美在线视频a| 亚洲永久免费av| 一本一本a久久| 亚洲国内精品| 有坂深雪在线一区| 国产真实乱子伦精品视频| 国产精品视频免费一区| 欧美日韩在线播| 欧美激情在线| 模特精品在线| 狂野欧美一区| 久久三级福利| 久久精品中文字幕免费mv| 午夜精品成人在线| 亚洲一级一区| 一区二区三区四区蜜桃| av不卡免费看| 夜夜嗨av一区二区三区四区| 亚洲精品在线视频观看| 亚洲人屁股眼子交8| 亚洲第一黄色网| 在线观看亚洲一区| 影音先锋日韩有码| 精品动漫3d一区二区三区免费| 国产日韩精品久久| 国产精品中文字幕欧美| 国产伦精品一区二区三区在线观看 | 日韩亚洲欧美一区| 日韩视频第一页| 99热在线精品观看| 这里只有视频精品| 中文av一区二区| 亚洲一区二区三区久久 | 欧美日韩一区二区三区四区在线观看 | 亚洲高清在线|