You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript中使用return实现函数提前退出触发ESLint 'no-useless-return'错误的原因及解决方案咨询

关于ESLint 'no-useless-return' 错误的解析与解决方案

嘿,我来帮你理清这个ESLint报错的问题~

首先明确说:这不是ESLint的误判,它是在按照规则提醒你当前代码里存在可以简化的冗余写法,算不上严重的代码质量问题,更多是代码风格层面的提示。

为什么会报这个错呢?因为你当前的return语句后面没有任何可执行代码(只有TODO注释),对于没有返回值的函数来说,走到这里函数本来就会自动返回undefined,单独写一个空return确实是多余的——ESLint的no-useless-return规则就是用来检测这种没有实际意义的空return的。

给你几个可行的解决思路:

  • 调整代码逻辑,移除冗余return
    把提前退出的逻辑改成正向判断,直接包裹后续的提交代码,这样既符合ESLint规则,代码也更简洁:

    submit() {
      if (this.checkValidate()) {
        // TODO: 这里编写提交逻辑
      }
    }
    
  • 保留守卫语句风格,临时忽略ESLint规则
    如果你特别喜欢“提前退出”这种守卫语句的写法(很多开发者觉得这种方式可读性更强),可以给这个位置单独加注释忽略规则:

    submit() {
      // eslint-disable-next-line no-useless-return
      if (!this.checkValidate()) return;
      // TODO: 这里编写提交逻辑
    }
    

    不过这种方式建议只在你确实认为守卫语句更清晰的场景下使用,别滥用哦。

  • 补全逻辑,让return变得有意义
    如果你的TODO后续会补充校验不通过的处理(比如提示用户错误信息),那等你补完逻辑后,这个return就不再是无用的了,ESLint的错误也会自动消失:

    submit() {
      if (!this.checkValidate()) {
        this.showValidationError('输入内容不符合要求');
        return;
      }
      // TODO: 这里编写提交逻辑
    }
    

总结一下:当前的空return确实是冗余的,但如果是临时占位或者个人风格偏好,你可以根据上面的方案选择合适的处理方式~

内容的提问来源于stack exchange,提问作者Pak Maneth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 16:37:41