Skip to main content

嚴格模式 (Strict Mode)

在 TypeScript 中,啟用嚴格模式(Strict Mode)可以讓 TypeScript 進行更嚴格的類型檢查,以提高程式碼的可靠性和安全性。嚴格模式包含一系列嚴格的編譯選項,例如 strictNullChecksnoImplicitAny 等。你可以通過以下步驟開啟嚴格模式:

方法:開啟 TypeScript 嚴格模式

  1. 修改 tsconfig.json 文件

    • 在你的專案根目錄中找到或創建 tsconfig.json 文件。
    • compilerOptions 物件中,將 strict 選項設為 true
      {
      "compilerOptions": {
      "strict": true
      }
      }
  2. 了解 strict 選項的作用

    • 啟用 strict: true 會自動啟用以下所有嚴格檢查選項:
      • noImplicitAny:禁止隱式的 any 類型。
      • noImplicitThis:禁止隱式的 this 類型。
      • alwaysStrict:確保編譯的 JavaScript 程式碼始終以 "use strict"; 運行。
      • strictBindCallApply:對 bindcallapply 方法進行嚴格的類型檢查。
      • strictNullChecks:嚴格檢查 nullundefined,確保它們不會被意外使用。
      • strictFunctionTypes:對函數參數進行更嚴格的雙向協變檢查。
      • strictPropertyInitialization:確保類的屬性在建構函數中被初始化(需配合 strictNullChecks)。
    • 如果你只想啟用部分嚴格選項,可以單獨設置這些選項為 true,而不需要設置 strict: true
  3. 檢查現有程式碼

    • 啟用嚴格模式後,TypeScript 可能會報告更多編譯錯誤,因為它會對程式碼進行更嚴格的檢查。請檢查並修復這些錯誤,例如:
      • 為變數或參數明確指定類型,而不是依賴隱式 any
      • 處理可能的 nullundefined 值(例如使用類型守衛或非空斷言 !)。
      • 確保類的屬性在建構函數中正確初始化。
  4. 逐步啟用(可選)

    • 如果你的專案規模較大,開啟 strict 可能會導致大量錯誤。建議逐步啟用嚴格模式:
      • 先單獨啟用某些選項(如 strictNullChecksnoImplicitAny),逐漸修復程式碼。
      • 最終再設置 strict: true 來啟用所有嚴格檢查。
  5. 重新編譯專案

    • 修改 tsconfig.json 後,使用 tsc 命令重新編譯專案,或者如果你使用的是自動編譯(tsc --watch),TypeScript 會自動重新檢查程式碼。

範例 tsconfig.json

以下是一個啟用嚴格模式的 tsconfig.json 範例:

{
"compilerOptions": {
"target": "es2018",
"module": "commonjs",
"outDir": "./dist",
"strict": true,
"esModuleInterop": true
},
"include": ["src/**/*"]
}

注意事項

  • 相容性:嚴格模式可能會影響現有程式碼,尤其是對 nullundefined 的處理。請確保在啟用後測試你的程式碼。
  • IDE 支援:使用支援 TypeScript 的 IDE(如 VS Code)可以更好地顯示錯誤並提供修復建議。
  • 文件參考:如需詳細了解每個嚴格選項,可以參考 TypeScript 官方文件

如果有其他問題或需要更詳細的說明,請告訴我!