跳至主要內容

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 運算子,其引數已為 voidundefined 型別。

.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/no-meaningless-void-operator": "error"
}
};

在操場試用此規則 ↗

範例

範例

void (() => {})();

function foo() {}
void foo();
在操場開啟

選項

此規則接受下列選項

type Options = [
{
checkNever?: boolean;
},
];

const defaultOptions: Options = [{ checkNever: false }];

checkNever

checkNever: true 會建議在引數具有 never 型別時移除 void

不使用它的時機

如果您不介意專案中有額外的 void,則可以避免這項規則。


經過型別檢查的 linting 規則強於傳統的 linting 規則,但需要設定 經過型別檢查的 linting。如果您在啟用經過型別檢查的規則後遇到效能下降,請參閱 效能疑難排解

資源