HarmonyOS 鸿蒙Next ArtTs中单独问号是什么意思

HarmonyOS 鸿蒙Next ArtTs中单独问号是什么意思

ForEach(this.testArr, (item?: string | undefined, index?: number) => {
    Text(`${item}`)
    if(item) {
      Text(`${index}-${item}`)
    }
  }, (item: string, index: number) => {return  index + '__' + JSON.stringify(item);});

问题:代码中出现两次的“?”是什么意思呢,还有 string|undefined中 “|”是什么意思呢…

困惑:这里的“?”,不是最常用的三目运算、不是JAVA里的类型通配符、好像也不是可选链运算符(?.)

去掉“?”代码也能正常运行,求大神解惑


更多关于HarmonyOS 鸿蒙Next ArtTs中单独问号是什么意思的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

函数形参 item 和 index 后面的问号代表这个参数不是必填,

string|undefined 中的 | 是或的意思,表示item参数可以是 string 或者 undefined 类型

更多关于HarmonyOS 鸿蒙Next ArtTs中单独问号是什么意思的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


可以快速了解下TypeScript语法

嗯嗯,谢谢啦,已经在看了…

在HarmonyOS的ArkTS中,单独的问号(?)用于表示可选属性或可选参数。它允许开发者在定义接口、类或函数时,指定某些属性或参数是可选的,即在调用或实例化时可以不提供这些属性或参数。

例如,在定义接口时,可以使用问号来标记某个属性为可选:

interface User {
  name: string;
  age?: number; // age 是可选的
}

在这个例子中,age 属性是可选的,意味着在创建 User 对象时,可以不提供 age 属性。

同样,在函数定义中,也可以使用问号来标记某个参数为可选:

function greet(name: string, message?: string) {
  if (message) {
    return `${message}, ${name}`;
  } else {
    return `Hello, ${name}`;
  }
}

在这个例子中,message 参数是可选的,调用 greet 函数时可以不传递 message 参数。

总之,ArkTS中的单独问号用于表示可选性,增加了代码的灵活性和可读性。

回到顶部