大家好! 👋
當開發者第一次聽到 TypeScript 時,總是會冒出同樣的疑慮、問題和困惑。這完全正常,TypeScript 起初確實會讓人覺得複雜。他們甚至可能會覺得,與純 JavaScript 相比,使用 TypeScript 就像是在寫額外的程式碼,或是覺得即使不用 TypeScript,自己的程式碼也已經夠清晰易懂了。
但實際上,TypeScript 是一種幫助我們編寫安全、更簡潔、更易理解的程式碼的工具。
把 TypeScript 想像成走鋼絲,而安全網(編譯器)就在旁邊🙃。如果你犯了錯誤,安全網(TypeScript)會立刻接住你,並且準確地告訴你哪裡出了問題,遠在使用者發現問題之前。
另一方面,JavaScript 就像走鋼絲,沒有安全網,速度很快,但即使是微小的錯誤(逗號、拼寫錯誤的方法、意外的類型)也可能導致整個程式在執行時崩潰。
如果您已經在使用 TypeScript,那麼您的程式碼就安全了👏,希望這篇文章能讓您更確信採用 TypeScript 是一個正確的決定!
如果你還沒有使用 TypeScript,但將來打算引入它,我希望這篇文章能幫助你做出明智的選擇!
本文將探討以下內容:
TypeScript 是 JavaScript 的超集,也就是說它是 JavaScript 的擴充版本。這意味著任何有效的JavaScript程式碼也是有效的TypeScript程式碼,所以它不是全新的語言!
換句話說,JavaScript 是一種靈活的語言,但缺乏嚴格的類型檢查,而 TypeScript 本質上仍然是 JavaScript,只是增加了一個靜態類型系統。這可以幫助我們在執行程式碼之前就避免錯誤,因為它能準確地告訴程式我們期望的資料類型(數字、字串、物件…)。
這就像在我們的程式碼中安裝了一個警報系統,提前警告我們:小心!這裡有些地方不匹配! ⚠️

我們常常會陷入將 TypeScript 與 JavaScript 比較的誤解,彷彿兩者都是爭奪相同地位的競爭對手。但實際上,這種看法是錯誤的。 TypeScript不應被視為 JavaScript 的對立面,而應被視為 JavaScript 的工具,它與 JavaScript 協同工作,增強 JavaScript 的功能,但絕不會取代 JavaScript。
我們之所以傾向於將兩者進行比較,是因為我們認為 TypeScript 是另一種試圖實作 JavaScript 現有功能的語言。但 TypeScript 並非取代 JavaScript,而是在其基礎上建構的。
把 JavaScript 想像成汽車的引擎,強大、有效率且不可或缺。 TypeScript 並不是另一個引擎,它更像是為引擎加入了導航、感測器和安全功能。你仍然駕駛著同一輛車,但現在它會引導你、警告你,並在錯誤發生之前保護你。
所以,正確的想法不是只選 JavaScript或TypeScript,而是 JavaScript與TypeScript 結合使用! JavaScript 負責執行程序,而 TypeScript 則幫助我們更好地編寫程式。

一旦你開始使用 TypeScript,你的視角就會轉變。你不再認為它們之間有競爭關係。你會清楚地體認到:它們是合作,而非競爭;是升級,而非替代!
正如我們之前討論的,現在你應該很清楚,你應該先學習 JavaScript 。為什麼呢?因為如果你連JavaScript 的基本概念(變數、函數、物件、非同步、DOM 等)都不理解,TypeScript 用起來就會讓你感到困惑和困難。如果沒有紮實的 JavaScript 基礎,你就無法套用 TypeScript 的安全特性。
大型公司和開發團隊使用 TypeScript 來解決實際問題並節省寶貴時間。 TypeScript 的一些主要優點包括:
→早期錯誤偵測:TypeScript 編譯器會在程式碼執行之前捕獲超過 80% 的常見 JavaScript 錯誤。這意味著更少的除錯時間,更多的時間用於建立新功能。
→提高生產力(IntelliSense) :TypeScript 為我們在編輯器中提供了更好的程式設計體驗(尤其是在 VS Code 中)。
→智慧自動補全:它能準確了解物件所擁有的屬性,並提供精確的建議。
→輕鬆導航:您可以點擊一個函數,立即查看其結構和定義。
→更輕鬆的團隊合作:
團隊中的每個人都能清楚地看到資料的結構、所需的參數以及哪些資料可以為空或不能為空。這大大減少了誤解和錯誤。
→更易於維護:TypeScript 有助於維持程式碼庫的秩序和一致性,即使程式碼庫已經顯著成長,也能讓擴充和重構變得更容易管理。
TypeScript 是一個非常棒的工具,但它也帶來了一些我們在純 JavaScript 中不需要承擔的責任。學習 TypeScript 時,我們需要清楚地了解程式碼的實際功能以及預期接收的資料類型。
→我們需要考慮類型:
在 JavaScript 中,我們通常可以編寫程式碼而無需過多擔心變數的類型。但在 TypeScript 中,我們必須明確定義變數、函數和物件應該儲存什麼。
例如,變數是string還是number ? TypeScript 要求我們明確定義它。這對於發現錯誤非常有利,但也意味著我們需要清楚地理解自己的程式碼。
→ TypeScript 並不能神奇地修復糟糕的邏輯:
使用 TypeScript 並不代表我們的程式碼就一定正確。 TS 可以警告你類型不匹配的問題,但它無法知道預期的行為。我們仍然需要理解函數應該做什麼以及資料是如何流動的。
→小心any :
any類型就像關閉了 TypeScript 的安全網。它雖然便於實驗,但過度依賴它會違背 TypeScript 的初衷。學習 TypeScript 意味著盡可能避免使用any ,並採用正確的類型定義。
→錯誤是我們的朋友:
當編譯器發出警告時,不要忽略它。 TypeScript 的設計初衷是儘早發現問題,而不是給我們添麻煩。重視它的警告可以幫我們節省之後大量的除錯時間。
學習 TypeScript不僅僅是學習文法。它更關乎深入理解程式碼,並明確定義資料的結構。我們越是練習用類型來思考,程式碼就越安全、越容易維護!
如果你已經在使用 TypeScript,我可以很肯定地說你是一位專業的 bug 修復專家! 😂🤗
如果你正在考慮嘗試 TypeScript,尤其是在你的應用程式中仍然隱藏著各種 bug 時,我希望這篇文章能給你一些信心,讓你踏出學習的第一步。每個開發者都會透過學習新工具而成長,而 TypeScript 無疑是能讓你變得更強大的工具之一。
如果你是新手,請一步一步來,記住,掌握 TypeScript 是一項長期投資,它會帶來豐厚的回報。
不斷嘗試,不斷學習,允許自己犯錯,TypeScript 正看著你呢! 😂🙃
感謝您的閱讀,我很快會帶來更多 TypeScript 文章。如果您喜歡這篇文章,學到了新知識,或者它讓您想起了當初學習 TypeScript 時的困惑,別忘了按讚、留言並追蹤我!
非常感謝!祝您閱讀愉快! 🥰
原文出處:https://dev.to/cristea_theodora_6200140b/the-developers-safety-net-introduction-to-typescript-2jof