no-meaningless-void-operator
除了用於捨棄某個值的情況之外,一概不允許使用
void
運算子。
🔒
在 一個"plugin:@typescript-eslint/"
嚴格類型檢查的 ESLint 設定檔 中啟用此規則。
🔧
本規則所回報的某些問題可以自動透過 --fix
ESLint 命令列選項修復.
💡
本規則所回報的某些問題可以透過編輯器手動修復 建議.
💭
此規則需要 類型資訊 才能執行。
TypeScript 中的void
是指某個函式傳回的是應該予以忽略的值。void
運算子是一個有用的工具,可傳達程式設計師打算捨棄某個值的意圖。例如,建議將其作為抑制 @typescript-eslint/no-floating-promises
的其中一種方法,而非將 .catch()
新增至某個承諾。
此規則有助於作者找出 API 變更,其中值以前已在呼叫位置中捨棄,但被呼叫者已變更,因此不再傳回值。結合 no-unused-expressions,也有助於程式碼的讀者確保一致性:看起來像 void foo();
的陳述總是捨去傳回值,而看起來像 foo();
的陳述從不捨去傳回值。此規則會報告任何 void
運算子,其引數已為 void
或 undefined
型別。
.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/no-meaningless-void-operator": "error"
}
};
在操場試用此規則 ↗
範例
範例
- ❌ 錯誤
- ✅ 正確
選項
此規則接受下列選項
type Options = [
{
checkNever?: boolean;
},
];
const defaultOptions: Options = [{ checkNever: false }];
checkNever
checkNever: true
會建議在引數具有 never
型別時移除 void
。
不使用它的時機
如果您不介意專案中有額外的 void
,則可以避免這項規則。
經過型別檢查的 linting 規則強於傳統的 linting 規則,但需要設定 經過型別檢查的 linting。如果您在啟用經過型別檢查的規則後遇到效能下降,請參閱 效能疑難排解。