~/VibeHandbook
免費 PDF

15 · 03

型別檢查與程式碼檢查:免費抓出的錯誤

有兩種工具幾乎不需要你費什麼力氣,就能抓出一整類錯誤:

  • 型別檢查(TypeScript、mypy 等)能抓出"你把一個 string 傳給了期望 number 的地方"以及"這個值可能是 undefined"。AI 特別喜歡忽略那些被型別設計成不可能出現的邊界情況。
  • 程式碼檢查(Linting)(ESLint、Ruff 等)能抓出未使用的變數、不可達程式碼以及風格漂移。它能防止一個被 AI 反覆改動的程式碼庫慢慢糊成一團。

儘早把這些設定好,並告訴 AI 遵守它們:"執行型別檢查器和 linter,並在你認為做完之前修復它們報出的所有問題。" 把一次乾淨的型別檢查當作"完成"定義的一部分。

不過,要警惕那些偷懶的逃生口。當型別檢查器抱怨時,真正正確的修復是去處理它發現的那個情況——那個 undefined 值、那個錯誤的型別。而快速的修復,是用 // @ts-ignoreany 或者 # type: ignore 註釋把抱怨壓下去,AI 會不停地伸手去抓這些,因為它們能讓紅字消失。它們也恰恰在檢查本想幫忙的那個位置,把檢查變得毫無價值。如果你在 diff 裡看到一條抑制(suppression)註釋出現,把它當成一個問題,而不是一個解決方案:"這為什麼是必要的?去修底層的型別,而不是忽略它。"

想離線閱讀?

免費下載整本書的 PDF 或 EPUB。