如何解决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
相关产品推荐
相关产品推荐

