typescript 的檢查級別通過 tsconfig.json 中的 strict 選項控制。開啟或關閉嚴格模式只需設置 “strict”: true 或 “strict”: false;若需部分啟用,可手動配置具體選項,如 strictNULLchecks、noimplicitany 等。vscode 會根據 tsconfig.json 自動進行類型檢查,并用紅色波浪線標出錯誤,錯誤列表可在“問題”面板查看;若 vscode 未報錯但 tsc 提示錯誤,應確認其使用的是本地 typescript 版本。遷移項目時建議逐步啟用嚴格檢查項以提升類型安全性。切換模式后可能出現大量類型錯誤,應逐一理解并修復,如添加類型注解或使用 unknown 類型;同時注意第三方庫是否兼容當前配置。
TypeScript 的檢查級別主要通過 tsconfig.json 文件中的 strict 選項控制。默認情況下,創建項目時如果啟用 strict 模式,TypeScript 會開啟一整套嚴格的類型檢查規則;反之則是寬松模式。如果你需要在不同場景下切換檢查級別,比如調試階段想放松一些限制、上線前恢復嚴格檢查,那么這篇文章能幫你理清思路。
如何開啟或關閉嚴格模式
最簡單的方式就是在項目的 tsconfig.json 文件中設置 “strict”: true 或者 “strict”: false。
{ "compilerOptions": { "strict": true } }
- true:開啟所有嚴格類型檢查選項,包括 strictNullChecks、strictFunctionTypes 等。
- false:關閉這些檢查,允許更多“松散”的寫法,比如變量可以隱式推斷為 any 類型。
如果你只想部分開啟某些嚴格檢查項,也可以手動配置具體選項,而不使用 strict 這個總開關。
VSCode 中如何查看和處理類型錯誤
VSCode 內置了 TypeScript 支持,只要你打開的是 .ts 或 .tsx 文件,并且項目中有正確的 tsconfig.json,它就會自動根據當前配置進行類型檢查。
- 錯誤會在代碼下方用紅色波浪線標出;
- 在左側的“問題”面板(快捷鍵 Ctrl+Shift+M)可以看到所有類型錯誤列表;
- 點擊錯誤可以直接跳轉到對應位置。
如果你發現 VSCode 沒有報錯,但命令行運行 tsc 卻提示錯誤,那可能是 VSCode 使用的不是本地安裝的 TypeScript 版本。可以在底部狀態欄點擊 TS 版本號,選擇“Use Workspace Version”。
常見檢查項說明與調整建議
除了整體開關 strict,你還可以更細致地控制以下檢查項:
- strictNullChecks: 控制是否允許變量為 null/undefined
- noImplicitAny: 是否禁止未指定類型的變量
- strictFunctionTypes: 是否對函數參數進行嚴格類型比較
- noImplicitthis: 是否禁止 this 表達式的隱式 any 類型
- alwaysStrict: 是否總是以嚴格模式解析 JavaScript
例如你想關閉 noImplicitAny,可以這樣配置:
{ "compilerOptions": { "strict": true, "noImplicitAny": false } }
小技巧:如果你正在遷移舊項目,可能一開始不想全量開啟 strict 模式,可以先逐個啟用這些選項,逐步提升類型安全性。
切換模式時需要注意的地方
切換檢查級別后,可能會出現大量新的類型錯誤。這時候不要急著修改代碼,而是先理解每個錯誤的含義。
- 如果是變量類型不明確,可以嘗試加上類型注解;
- 如果是函數參數沒有定義類型,也應補上;
- 對于確實不確定類型的情況,可以考慮使用 unknown 而非 any,以保持一定類型安全。
另外,有些庫或插件在 strict 模式下可能會報錯,記得檢查它們是否支持最新的 TypeScript 配置,或者是否有對應的類型定義更新。
基本上就這些。切換 TypeScript 的檢查級別并不復雜,但很容易忽略細節,尤其是當你從寬松模式遷移到嚴格模式時,需要一點耐心去修復每一個類型問題。