变脸类型判断问题

  1. 定义类
@Observed
export class NewsChannelRouterParam {
  id:number
  title:string
  constructor(id:number, title:string) {
    this.id = id
    this.title = title
  }
}

2.通过router获取页面传参,参数实际类型是

NewsChannelRouterParam
let routerParam:Object = router.getParams()
Log.d(TAG, `handleSwitchNewsChannel() routerParam: ${JSON.stringify(routerParam)}`)    // 输出正确
if (routerParam instanceof NewsChannelRouterParam) {   // 结果未进入该分支
  Log.d(TAG, `handleSwitchNewsChannel() -> NewsChannelRouterParam`)
  this.newsChannelRouterParam = routerParam as NewsChannelRouterParam
}

想通过判别变量类型 进入指定分支避免类型错误, 但是实际运行的时候, 未进入分支代码, 查了一下TypeScript的语法, class 定义的类型 应该可以通过 instanceof 判断, 想问一下, 这里应该怎么判别变量类型?

HarmonyOS
7天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
shlp

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/typescript-to-arkts-migration-guide-V5#部分支持instanceof运算符,在TypeScript中,instanceof运算符的左操作数的类型必须为any类型、对象类型,或者它是类型参数,否则结果为false。在ArkTS中,instanceof运算符的左操作数的类型必须为引用类型(例如,对象、数组或者函数),否则会发生编译时错误。此外,在ArkTS中,instanceof运算符的左操作数不能是类型,必须是对象的实例。

可以使用下面代码试试

let routerParam: NewsChannelRouterParam = router.getParams() as NewsChannelRouterParam
分享
微博
QQ
微信
回复
7天前
相关问题
网络类型细分判断问题咨询
379浏览 • 1回复 待解决
HarmonyOS 怎么进行类型判断
687浏览 • 1回复 待解决
HarmonyOS 如何判断设备类型
486浏览 • 1回复 待解决
HarmonyOS如何判断设备类型?
513浏览 • 1回复 待解决
HarmonyOS 泛型类型判断
208浏览 • 1回复 待解决
HarmonyOS ArkTS如何判断Object类型
354浏览 • 1回复 待解决
HarmonyOS 线程内类型判断无效
80浏览 • 1回复 待解决
如何对监听判断VPN类型网络
510浏览 • 1回复 待解决
HarmonyOS 如何判断手机屏幕类型
94浏览 • 1回复 待解决
ArkTS如何判断接收参数是什么类型
127浏览 • 1回复 待解决
怎么判断一个类型是stirng
1016浏览 • 1回复 待解决
判断一个参数是不是Resource类型
570浏览 • 1回复 待解决
HarmonyOS 如何判断自定义类的类型
189浏览 • 1回复 待解决