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

如何解决ESLint的no-unsafe-optional-chaining错误?

解决ESLint no-unsafe-optional-chaining 错误方案

错误原因

这条报错的核心逻辑很明确:当event、event.context或event.context.params任意一项为undefined时,event?.context?.params会短路返回undefined,而对undefined执行对象解构操作会直接抛出TypeError,ESLint的no-unsafe-optional-chaining规则就是在提前预警这种潜在的运行时崩溃风险。

可行解决方法

  • 给可选链结果加默认空对象
    解构时通过空值合并运算符??提供默认值,避免解构undefined:

    const { _: slug } = event?.context?.params ?? {};
    

    若可选链返回undefined,则用空对象{}进行解构,slug会被赋值为undefined,不会触发错误。

  • 分步判断后解构
    先确认params存在再执行解构逻辑,逻辑更直观:

    let slug;
    if (event?.context?.params) {
      ({ _: slug } = event.context.params);
    }
    
  • 临时禁用规则(不推荐)
    如果你能100%保证event?.context?.params永远不会是undefined,可以在代码行上临时跳过检查:

    // eslint-disable-next-line no-unsafe-optional-chaining
    const { _: slug } = event?.context?.params;
    

    注意:这种做法会埋下运行时崩溃隐患,非必要不使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 15:31:10