首頁 >web前端 >js教程 >從 Javascript 跳到 Typscript 的概念應該要被了解

從 Javascript 跳到 Typscript 的概念應該要被了解

Barbara Streisand
Barbara Streisand原創
2024-11-25 19:24:15358瀏覽

Jumping From Javascript To Typscript Concept Should be Known

你真的想學嗎?
認真的!
讓我們開始吧,

以下是需要注意的概念清單:

1.模式種註解

  • 基本型:了解string、number、boolean、any、void、undefined、null等之間的差異

  • 類型註解:學習如何明確宣告類型(例如,讓age: number = 30;)。

  • 類型推斷:TypeScript 可以從上下文推斷類型,但了解何時使用顯式類型以及何時依賴推斷非常重要。

  • 聯合型別:型別可以是多種型別的組合(例如,let value: string | number)。

  • 文字類型:可以是特定值的類型(例如,讓方向:'左' | '右';)。

2。介面與型別別名

  • 介面:用來定義物件形狀(例如,介面 User { name: string;age: number })。
  • 類型別名:允許您建立自訂類型(例如,類型 ID = 字串 | 數字;)。
  • 介面和類型的差異:介面是可擴充的,而型別別名更靈活(可以定義基元、並集、交集等)。

3。泛型

  • 泛型函數:可以處理多種類型的函數(例如,函數identity(arg: T): T { return arg; })。
  • 泛型介面/類別:將泛型套用至介面和類別(例如,interface Box { value: T; })。

4。型態斷言與轉換

  • 型別斷言:告訴 TypeScript 你比它更了解這個型別(例如,let value = someValue as string)。
  • 非空斷言:使用 !告訴 TypeScript 某個值不為 null 或未定義(例如,someVar!.doSomething())。

5。結構類型(鴨子類型)
在 TypeScript 中,類型是結構化的,這意味著類型是根據其屬性而不是名稱進行比較的。如果兩個類型具有相同的結構,則它們被視為同一類型。

6。枚舉

  • 數字和字串枚舉:允許您定義一組命名常數(例如,枚舉方向 { Up、Down、Left、Right })。
  • 常數列舉:不需要反向映射時更有效的枚舉形式(例如,常數枚舉 Color { Red, Green, Blue })。

7。型縮小

  • 型別保護:使用 typeof、instanceof 或自訂類型謂詞來縮小變數的型別範圍。
  • 可區分聯合:將聯合類型與公共屬性(鑑別器)結合以縮小類型範圍(例如,type Circle = { kind: "circle"; radius: number };)。

8。高級類型

  • 交叉類型:將多種類型合併為一種(例如,輸入 AdminUser = User & Admin;)。
  • 映射類型:允許您轉換類型中的屬性(例如, type ReadOnly = { readonly [P in keyof T]: T[P]; })。 Utility Types:簡化常見型別轉換的內建類型,例如 Partial、Pick、Omit、Record 等

9。模組與命名空間

  • ES 模組:TypeScript 支援 ES6 模組語法(例如匯入/匯出)。了解模組解析以及預設導出和命名導出之間的差異至關重要。
  • 命名空間:TypeScript 也有自己的命名空間系統,但通常不鼓勵現代程式碼庫使用 ES 模組。

10。處理 JavaScript 函式庫

  • DefinitelyTyped:了解如何為不提供自己類型的 JavaScript 程式庫安裝和使用類型定義(例如,透過 @types/lodash)。
  • 聲明第 3 方庫的類型:了解在沒有可用類型時如何為庫或全域物件編寫自訂類型聲明(*.d.ts 檔案)。

11。類別和繼承

  • TypeScript 類別:與 JavaScript 類別類似,但具有額外的類型檢查。
  • 存取修飾符:public、private、protected關鍵字控制類別成員的可見性。
  • 唯讀:將屬性標記為唯讀(例如,唯讀 id: number)。
  • 抽象類別與方法:抽象類別不能直接實例化,只能進行子類別化。

12。非同步/等待和 Promise
TypeScript 完全支援 async/await 和 Promises,但新增類型註解可以幫助避免 Promise 或 async function 等類型的問題。

13。裝飾器
實驗功能:裝飾器是一種用於註解或修改類別和類別成員的特殊語法。在 Angular 等框架中很有用,但在 TypeScript 中仍處於實驗階段。

14。嚴格的類型檢查選項

  • 嚴格模式:啟用更嚴格的類型檢查選項(例如,strictNullChecks、noImplicitAny)。
  • tsconfig.json:了解如何使用此檔案設定 TypeScript 以啟用或停用編譯器選項。

15。 TypeScript 和 JavaScript 互通性

  • 使用 JavaScript 程式碼:TypeScript 與 JavaScript 完全相容。您可以逐步將 TypeScript 引入現有的 JavaScript 專案中,並且仍然從 TypeScript 呼叫 JavaScript,反之亦然。
  • JSDoc 註解:您可以在 JavaScript 中使用 JSDoc 風格的註解向 TypeScript 提供類型訊息,這在混合 JS/TS 程式碼庫中非常有用。

16。錯誤處理
TypeScript 有助於在編譯時擷取常見錯誤,例如存取 null 或未定義的屬性。了解如何在 TypeScript 中使用 try/catch 以及正確的類型註解非常重要。

17。 TypeScript 配置 (tsconfig.json)

  • 編譯器選項:了解如何配置編譯器設置,包括模組解析、嚴格性設定和目標環境。
  • 來源映射:設定來源映射以使在瀏覽器或 Node.js 中偵錯 TypeScript 變得更容易。

18。實用函數與型別

  • keyof、typeof、instanceof:了解這些實用運算子以及如何使用它們來提取和操作類型。
  • 索引簽章:允許您動態定義物件的鍵和值的型別(例如,[key: string]: any)。

19。條件類型
TypeScript 允許根據條件定義類型(例如 type IsString = T extends string ? true : false;)。

20。 TypeScript 版本控制和相容性

  • 新功能:保持更新新的 TypeScript 版本,因為它是一種快速發展的語言。模板文字類型、類型謂詞和更嚴格的類型檢查等新功能可以改進您的程式碼。

透過掌握這些 TypeScript 特定的概念,您將能夠利用 TypeScript 的全部功能,包括其靜態型別系統,與純 JavaScript 相比,提高程式碼品質、可維護性和可擴充性。

想了解更多關於我的信息,只需在搜尋引擎上寫sallbro...

以上是從 Javascript 跳到 Typscript 的概念應該要被了解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn