嚴格模式 (Strict Mode)
在 TypeScript 中,啟用嚴格模式(Strict Mode)可以讓 TypeScript 進行更嚴格的類型檢查,以提高程式碼的可靠性和安全性。嚴格模式包含一系列嚴格的編譯選項,例如 strictNullChecks、noImplicitAny 等。你可以通過以下步驟開啟嚴格模式:
方法:開啟 TypeScript 嚴格模式
-
修改
tsconfig.json文件:- 在你的專案根目錄中找到或創建
tsconfig.json文件。 - 在
compilerOptions物件中,將strict選項設為true:{
"compilerOptions": {
"strict": true
}
}
- 在你的專案根目錄中找到或創建
-
了解
strict選項的作用:- 啟用
strict: true會自動啟用以下所有嚴格檢查選項:noImplicitAny:禁止隱式的any類型。noImplicitThis:禁止隱式的this類型。alwaysStrict:確保編譯的 JavaScript 程式碼始終以"use strict";運行。strictBindCallApply:對bind、call和apply方法進行嚴格的類型檢查。strictNullChecks:嚴格檢查null和undefined,確保它們不會被意外使用。strictFunctionTypes:對函數參數進行更嚴格的雙向協變檢查。strictPropertyInitialization:確保類的屬性在建構函數中被初始化(需配合strictNullChecks)。
- 如果你只想啟用部分嚴格選項,可以單獨設置這些選項為
true,而不需要設置strict: true。
- 啟用
-
檢查現有程式碼:
- 啟用嚴格模式後,TypeScript 可能會報告更多編譯錯誤,因為它會對程式碼進行更嚴格的檢查。請檢查並修復這些錯誤,例如:
- 為變數或參數明確指定類型,而不是依賴隱式
any。 - 處理可能的
null或undefined值(例如使用類型守衛或非空斷言!)。 - 確保類的屬性在建構函數中正確初始化。
- 為變數或參數明確指定類型,而不是依賴隱式
- 啟用嚴格模式後,TypeScript 可能會報告更多編譯錯誤,因為它會對程式碼進行更嚴格的檢查。請檢查並修復這些錯誤,例如:
-
逐步啟用(可選):
- 如果你的專案規模較大,開啟
strict可能會導致大量錯誤。建議逐步啟用嚴格模式:- 先單獨啟用某些選項(如
strictNullChecks或noImplicitAny),逐漸修復程式碼。 - 最終再設置
strict: true來啟用所有嚴格檢查。
- 先單獨啟用某些選項(如
- 如果你的專案規模較大,開啟
-
重新編譯專案:
- 修改
tsconfig.json後,使用tsc命令重新編譯專案,或者如果你使用的是自動編譯(tsc --watch),TypeScript 會自動重新檢查程式碼。
- 修改
範例 tsconfig.json
以下是一個啟用嚴格模式的 tsconfig.json 範例:
{
"compilerOptions": {
"target": "es2018",
"module": "commonjs",
"outDir": "./dist",
"strict": true,
"esModuleInterop": true
},
"include": ["src/**/*"]
}
注意事項
- 相容性:嚴格模式可能會影響現有程式碼,尤其是對
null和undefined的處理。請確保在啟用後測試你的程式碼。 - IDE 支援:使用支援 TypeScript 的 IDE(如 VS Code)可以更好地顯示錯誤並提供修復建議。
- 文件參考:如需詳細了解每個嚴格選項,可以參考 TypeScript 官方文件。
如果有其他問題或需要更詳細的說明,請告訴我!