HarmonyOS关于代码中自动将string转成number的问题

代码:

private hasRequestedConversationList(): boolean { 
  Logg.i(this.TAG, "hasRequestedConversationList 1 :" + (IMManager.getInstance().getIMParam() === undefined)); 
  let currentUcid:string = IMManager.getInstance().getIMParam()?.ucid??''; 
  Logg.i(this.TAG, "hasRequestedConversationList ucid :" + currentUcid); 
  // if (StringUtils.isNullOrBlank(currentUcid)) { 
  if (StringUtils.isNullOrBlank(currentUcid)) { 
    Logg.i(this.TAG, "hasRequestedConversationList 2 " ); 
    return false; 
  } 
  StringUtils.isNullOrBlank代码: 
  /** 
   * 字符串是否为空或'' 
   */ 
  public static isNullOrBlank(str: string | null | undefined): boolean { 
    if (str === null || str === undefined || str.trim().length === 0) { 
      return true 
    } 
    return false 
  }

这里面debug时currentUcid的typeof是number,这里面声明变量时已经声明为string了。IMManager.getInstance().getIMParam()返回的对象定义:

export class IMParam{ 
  ucid?:string; 
  /** 
   * 是否是Debug环境 
   */ 
  isDebugEnv?:boolean; 
}
HarmonyOS
2024-08-27 10:15:12
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

将any类型或ESObject类型赋值给string类型时,如果该值实际上是一个数字,它会被自动隐式转换为number类型,是正常表现,与Node.js表现一致。

let test:ESObject = 1    
let test1:string = test    
console.info('Typeof test1:' + typeof test1); // typeof是number
分享
微博
QQ
微信
回复
2024-08-27 19:20:48
相关问题
如何ArrayBuffer转成string
629浏览 • 1回复 待解决
如何ArrayBuffer转成string
2581浏览 • 1回复 待解决
HarmonyOS stringnumber
930浏览 • 1回复 待解决
如何Resource资源对象转成string类型
3178浏览 • 1回复 待解决
HarmonyOS stringnumber扩展方法
43浏览 • 0回复 待解决
string 转成ArrayBuffer报错
1034浏览 • 1回复 待解决
HarmonyOS 关于library代码混淆问题
106浏览 • 1回复 待解决
HarmonyOS number字段精度丢失问题
788浏览 • 1回复 待解决
HarmonyOS 关于自动换行流式布局
44浏览 • 1回复 待解决
HarmonyOS string相关问题
82浏览 • 1回复 待解决
关于HarmonyOS webviewiFrame使用问题
324浏览 • 1回复 待解决
关于mysqlorder by查询问题
2304浏览 • 1回复 待解决