使用Optional Chaining检测空值仍报错,如何正确处理?
解决可选链使用的报错问题
你当前的代码data?.response[0]?.Transaction[0]?.UID之所以报错,是因为可选链只覆盖到了response[0],当Transaction键不存在时,Transaction会是undefined,此时直接访问[0]就会触发类型错误——因为不能对undefined执行索引读取操作。
只需要在Transaction和索引[0]之间也添加可选链操作符,就能解决问题,修正后的代码如下:
data?.response[0]?.Transaction?.[0]?.UID;
原理是:一旦Transaction为null或undefined,可选链会直接短路返回undefined,不会继续执行后续的[0]?.UID访问,自然就不会抛出错误。
内容的提问来源于stack exchange,提问作者user3653474
相关产品推荐
相关产品推荐

