一致的返回值
要求
return
语句始终或从不指定值。
💭
此规则需要类型信息才能运行。
此规则扩展了基本eslint/consistent-return
规则。此版本添加了对返回void
或Promise<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();
}
在游乐场中打开function foo(): void {}
function bar(flag: boolean): void {
if (flag) return foo();
return;
}
async function baz(flag: boolean): Promise<void | number> {
if (flag) return 42;
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"
}
};
在游乐场中尝试此规则 ↗
何时不使用它
类型检查的 lint 规则比传统的 lint 规则更强大,但也需要配置类型检查的 linting。如果在启用类型检查规则后遇到性能下降,请参见性能故障排除。