使用程式碼庫時,TypeScript 中的類型系統具有不同層級的嚴格性
- 僅基於 JavaScript 程式碼推論的類型系統
- 透過 JSDoc 在 JavaScript 中進行遞增式輸入
- 在 JavaScript 檔案中使用
// @ts-check
- TypeScript 程式碼
- 已啟用
strict
的 TypeScript
每一步都代表朝向更安全的類型系統邁進,但並非每個專案都需要這種層級的驗證。
JavaScript 中的 TypeScript
這是當您使用編輯器時,該編輯器使用 TypeScript 提供自動完成、跳至符號和重新整理工具等工具,例如重新命名。首頁 有 TypeScript 外掛程式的編輯器清單。
透過 JSDoc 提供 JS 中的類型提示
在 .js
檔案中,類型通常可以推斷出來。當無法推斷類型時,可以使用 JSDoc 語法指定類型。
JSDoc 註解出現在宣告之前,將用於設定該宣告的類型。例如
jsTry
/** @type {number} */varx ;x = 0; // OKx = false; // OK?!
您可以在 JSDoc 支援的類型 中找到支援的 JSDoc 模式的完整清單。
@ts-check
前一個程式碼範例的最後一行會在 TypeScript 中引發錯誤,但在 JS 專案中預設不會。若要啟用 JavaScript 檔案中的錯誤,請將 // @ts-check
新增到 .js
檔案的第一行,讓 TypeScript 將其引發為錯誤。
jsTry
// @ts-check/** @type {number} */varx ;x = 0; // OKType 'boolean' is not assignable to type 'number'.2322Type 'boolean' is not assignable to type 'number'.= false; // Not OK x
如果您有很多想要新增錯誤的 JavaScript 檔案,則可以切換為使用 jsconfig.json
。您可以透過將 // @ts-nocheck
註解新增到檔案來略過檢查某些檔案。
TypeScript 可能會提供您不同意的錯誤,在這種情況下,您可以透過在上一行新增 // @ts-ignore
或 // @ts-expect-error
來忽略特定行上的錯誤。
jsTry
// @ts-check/** @type {number} */varx ;x = 0; // OK// @ts-expect-errorx = false; // Not OK
若要深入了解 TypeScript 如何詮釋 JavaScript,請閱讀 TS 如何類型檢查 JS