使用 TypeScript 的 JS 專案

使用程式碼庫時,TypeScript 中的類型系統具有不同層級的嚴格性

  • 僅基於 JavaScript 程式碼推論的類型系統
  • 透過 JSDoc 在 JavaScript 中進行遞增式輸入
  • 在 JavaScript 檔案中使用 // @ts-check
  • TypeScript 程式碼
  • 已啟用 strict 的 TypeScript

每一步都代表朝向更安全的類型系統邁進,但並非每個專案都需要這種層級的驗證。

JavaScript 中的 TypeScript

這是當您使用編輯器時,該編輯器使用 TypeScript 提供自動完成、跳至符號和重新整理工具等工具,例如重新命名。首頁 有 TypeScript 外掛程式的編輯器清單。

透過 JSDoc 提供 JS 中的類型提示

.js 檔案中,類型通常可以推斷出來。當無法推斷類型時,可以使用 JSDoc 語法指定類型。

JSDoc 註解出現在宣告之前,將用於設定該宣告的類型。例如

js
/** @type {number} */
var x;
 
x = 0; // OK
x = false; // OK?!
Try

您可以在 JSDoc 支援的類型 中找到支援的 JSDoc 模式的完整清單。

@ts-check

前一個程式碼範例的最後一行會在 TypeScript 中引發錯誤,但在 JS 專案中預設不會。若要啟用 JavaScript 檔案中的錯誤,請將 // @ts-check 新增到 .js 檔案的第一行,讓 TypeScript 將其引發為錯誤。

js
// @ts-check
/** @type {number} */
var x;
 
x = 0; // OK
x = false; // Not OK
Type 'boolean' is not assignable to type 'number'.2322Type 'boolean' is not assignable to type 'number'.
Try

如果您有很多想要新增錯誤的 JavaScript 檔案,則可以切換為使用 jsconfig.json。您可以透過將 // @ts-nocheck 註解新增到檔案來略過檢查某些檔案。

TypeScript 可能會提供您不同意的錯誤,在這種情況下,您可以透過在上一行新增 // @ts-ignore// @ts-expect-error 來忽略特定行上的錯誤。

js
// @ts-check
/** @type {number} */
var x;
 
x = 0; // OK
// @ts-expect-error
x = false; // Not OK
Try

若要深入了解 TypeScript 如何詮釋 JavaScript,請閱讀 TS 如何類型檢查 JS

TypeScript 文件是一個開放原始碼專案。透過 傳送 Pull Request 來協助我們改善這些頁面 ❤

此頁面的貢獻者
OTOrta Therox (6)

最後更新:2024 年 3 月 21 日