跳至主要內容

consistent-return

需要return 陳述式始終或從不指定值。

💭

此規則需要 類型資訊 才能執行。

此規則擴充基本 eslint/consistent-return 規則。此版本增加了對傳回 voidPromise<void> 的函式的支援。

警示

如果可以,建議使用 tsconfig 的 noImplicitReturns 選項,而不是此規則。noImplicitReturns 由 TS 的類型資訊和控制流程分析支援,因此比此規則有更好的覆蓋範圍。

function foo(): undefined {}
function bar(flag: boolean): undefined {
if (flag) return foo();
return;
}

async function baz(flag: boolean): Promise<undefined> {
if (flag) return;
return foo();
}
在遊樂場中開啟

選項

請參閱 eslint/consistent-return 選項

如何使用

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

在遊樂場中嘗試此規則↗

何時不使用

經過類型檢查的 linter 規則比傳統的 linter 規則強大,但前提是需要設定經過類型檢查的 linting。如果在啟用經過類型檢查的規則後遇到效能降低的情況,請參閱效能疑難排解

資源

取自 ESLint 核心