IDE无法识别在自定义方法中做的检测

class Demo{ 
  isNotEmpty(list:ArrayList<number>|null):boolean{ 
    return list!=null&&!list.isEmpty() 
  } 
 
  test(list:ArrayList<number>|null){ 
    if(this.isNotEmpty(list)){ 
      list.length//会爆红提示有可能为null 
    } 
  } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

在test使用isNotEmpty方法判断了,但是使用还是报错。在最新的Preview中出现。

HarmonyOS
2024-05-10 22:05:14
1125浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
一意孤行的

isNotEmpty是个函数调用,tsc(ts编译器)没法判断这种比较复杂的逻辑,与arkts无关,可以直接判断是不是null list?.length 或者 确定不为null的话可以将报错处改为list!.length。开发者可以多参考ts的?. 和 !.的用法。

分享
微博
QQ
微信
回复
2024-05-11 11:20:25


相关问题
HarmonyOS 自定义方法链式调用
890浏览 • 1回复 待解决
自定义路由表实现方法
1001浏览 • 1回复 待解决
HarmonyOS 全局设置自定义字体方法
792浏览 • 1回复 待解决
js 自定义组件如何传递方法
6746浏览 • 2回复 待解决
HarmonyOS 全局自定义弹窗无法弹出
853浏览 • 1回复 待解决
HarmonyOS Slider无法自定义滑轨样式
983浏览 • 1回复 待解决