930版本检查规则无法识别工具类已经经过进行了判空校验,必须要求在方法内部判空

比如如下代码,在CheckUtil.isEmpty工具方法中,已经确保了对象不可能为空(包括null和undefined),但下一行代码仍报错要求判断非空。

if (!CheckUtil.isEmpty<CinConnection>(this.cinConnection)) { 
  if (this.cinConnection.isConnected()) { 
    await this.cinConnection.disconnect(); 
  } 
}
HarmonyOS
2024-05-30 22:02:40
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
anlan001

当前反馈告警是标准ts的strict模式检查, 可以参考:https://www.typescriptlang.org/tsconfig#strictNullChecks

封装函数进行nullcheck为什么还要在函数内进行重复判空的原因:

因为ts中函数是可以重写或者覆盖从而改变函数的返回值, 因此在ts中不能基于外部函数的返回值或者检查结果进行当前函数的检查为什么在ArkTS中已经禁用了函数覆盖,还会出现重复检查的问题:

1. ArkTS可以跟ts进行交互,虽然在ArkTS中不能重写函数, 但是在ArkTS中的对象可能在ts中被重写

2. 如上所述,当前检查是基于标准ts的,检查结果跟ts保持一致

分享
微博
QQ
微信
回复
2024-05-31 21:21:27
相关问题
mate30 5G鸿蒙110版本更新升级150版本
6379浏览 • 1回复 待解决
arkts版本、引擎、工具方法
670浏览 • 1回复 待解决
什么时候优化更新到鸿蒙222版本
4077浏览 • 1回复 待解决
2.1.1版本的axios发post请求会报401
512浏览 • 1回复 待解决
Open Harmony 3.1版本支持横竖屏切换吗?
3845浏览 • 1回复 待解决
适配OpenHarmony是否必须要过XTS认证
849浏览 • 0回复 待解决
preferences工具封装
395浏览 • 1回复 待解决