TypeScript 中的型別系統在處理程式碼庫時具有不同級別的嚴格程度
- 一種僅基於 JavaScript 程式碼推斷的型別系統
- 透過 JSDoc 在 JavaScript 中實現增量型別檢查
- 在 JavaScript 檔案中使用
// @ts-check - TypeScript 程式碼
- 啟用了
strict(嚴格模式)的 TypeScript
每一個步驟都代表著向更安全的型別系統邁進,但並非每個專案都需要這種級別的驗證。
TypeScript 與 JavaScript
這是指當你使用支援 TypeScript 的編輯器時,它可以提供諸如自動補全、跳轉到符號以及重新命名等重構工具。可以在主頁上找到包含 TypeScript 外掛的編輯器列表。
透過 JSDoc 在 JS 中提供型別提示
在 .js 檔案中,型別通常是可以被推斷出來的。當型別無法推斷時,可以使用 JSDoc 語法來指定它們。
宣告之前的 JSDoc 註釋將被用於設定該宣告的型別。例如:
jsTry/** @type {number} */varx ;x = 0; // OKx = false; // OK?!
你可以在 JSDoc 支援的型別中找到完整支援的 JSDoc 模式列表。
@ts-check
上述程式碼示例中的最後一行在 TypeScript 中會引發錯誤,但在 JS 專案中預設不會。要啟用 JavaScript 檔案中的錯誤檢查,請在 .js 檔案的第一行新增 // @ts-check,這樣 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 的資訊,請閱讀TypeScript 如何對 JS 進行型別檢查。