如何通过TypeScript或ESLint规则禁止箭头函数的默认返回?
检测箭头函数隐性默认返回的方案
ESLint 规则
arrow-body-style:配置为["error", "as-needed"],强制箭头函数在仅返回表达式时使用简洁写法(不加{});如果加了大括号包裹函数体,就必须明确写return语句,否则直接触发报错。
配置示例(.eslintrc.js):module.exports = { rules: { "arrow-body-style": ["error", "as-needed"] } };consistent-return:检查函数是否所有代码分支都有返回值,对于用了大括号却未写return的箭头函数,会触发警告或错误。
TypeScript 编译选项
使用TypeScript时,开启noImplicitReturns编译选项即可,在tsconfig.json中配置:
{ "compilerOptions": { "noImplicitReturns": true } }
开启后,只要函数(包括箭头函数)存在无返回值的代码路径,就会抛出编译错误,刚好能检测到你遇到的这类问题——加了大括号却漏写return的箭头函数。
你写的错误代码:
activeRegion = regions.find( region => { region.countryCode === activeCountryCode } )
这里大括号包裹了函数体但未写return,JS默认返回undefined,导致find无法找到匹配项。上述规则和配置都能在编码阶段就发现这个隐性问题,避免bug产生。
内容的提问来源于stack exchange,提问作者chrispepper1989
相关产品推荐
相关产品推荐

