跳到主要內容

no-unused-vars

不允許使用未使用的變數。

此規則擴充基本 eslint/no-unused-vars 規則。它新增了對 TypeScript 功能(例如類型)的支援。

優於 TypeScript 的好處

TypeScript 提供 noUnusedLocalsnoUnusedParameters 編譯器選項,分別用來報告未使用的局部變數或參數的錯誤。如果您不想設定 ESLint 和 typescript-eslint,則這些編譯器選項非常實用。不過

  • 這些 linter 規則比 TypeScript 的編譯器選項有更多組態選項。
    • 例如,varsIgnorePattern 選項 可以自訂哪些名稱總是允許豁免。TypeScript 將其豁免硬編碼給從 _ 開始的名稱。如果你想模擬 TypeScript 從 _ 開始豁免名稱的樣式,你可以使用這個設定(這也包括錯誤)
      {
      "rules": {
      "@typescript-eslint/no-unused-vars": [
      "error",
      {
      "args": "all",
      "argsIgnorePattern": "^_",
      "caughtErrors": "all",
      "caughtErrorsIgnorePattern": "^_",
      "destructuredArrayIgnorePattern": "^_",
      "varsIgnorePattern": "^_",
      "ignoreRestSiblings": true
      }
      ]
      }
      }
  • ESLint 可以設定在行、檔案和資料夾中。TypeScript 編譯器選項連結到它們的 TSConfig 檔案。
  • 許多專案會設定 TypeScript 報告的錯誤,以比 ESLint 抱怨更積極地阻擋組建。阻擋未使用的變數組建會不方便。

我們通常建議使用 @typescript-eslint/no-unused-vars 標記未使用的區域變數和參數,而不是 TypeScript。

提示

即使專案中未啟用 noUnusedLocalsnoUnusedParameters,例如 VS Code 這樣的編輯器通常仍會將未使用的變數「灰顯」。

另請參閱 ESLint 提供的類似規則

選項

請參閱 eslint/no-unused-vars 選項

如何使用

.eslintrc.cjs
module.exports = {
"rules": {
// Note: you must disable the base rule as it can report incorrect errors
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": "error"
}
};

在操場中嘗試此規則 ↗

資源

取用於 ESLint 內核 中的 ❤️。