HarmonyOS 鸿蒙Next中 问号 `?` 和感叹号 `!` 的区别和用法

HarmonyOS 鸿蒙Next中 问号 ? 和感叹号 ! 的区别和用法

问号 ?

  1. 可选属性(在接口或类型中):

    interface User {
      name: string;
      age?: number; // age 是可选的
    }
    
  2. 可选参数(在函数中):

    function greet(name: string, message?: string) {
      // ...
    }
    

感叹号 !

断言不为 undefined/null

如果sort非空乘以-1

this.subHeaderList[index].sort = this.subHeaderList[index].sort! * -1

主要区别

特性 ? (问号) ! (感叹号)
含义 表示可能为 undefined/null 断言不为 undefined/null
安全性 更安全,强制检查 不安全,可能引发运行时错误
使用场景 定义可选属性/参数,安全访问属性 当你确定值不为空时跳过类型检查
类型影响 向类型系统添加 undefined/null 从类型中移除 undefined/null

更多关于HarmonyOS 鸿蒙Next中 问号 `?` 和感叹号 `!` 的区别和用法的实战教程也可以访问 https://www.itying.com/category-93-b0.html

回到顶部