HarmonyOS 鸿蒙Next在.ets文件中定义数组报错

发布于 1周前 作者 zlyuanteng 来自 鸿蒙OS

HarmonyOS 鸿蒙Next在.ets文件中定义数组报错

cke_156.png

为什么这样定义数组会报错

3 回复

API 11开始不支持这样写了,按官方的意思是过于灵活了。有三种方式可以初始化数组。

方案一:使用Object(),相当于绕过了官方的限制,没准哪天被官方发现了,然后项目就突然又不能使用了,所以不推荐。

 list: Object[] = [
    Object({
      id: 1,
      name: '商品1'
    }),
    Object({
      id: 2,
      name: '商品2'
    })
  ]

方案二:使用Record,官方推荐,缺点就是左边的key都要用“”号,写起来有点麻烦。

list: Record<string, string | number>[] = [
    {
      'id': 1,
      'name': '商品1'
    } ,
    {
      'id': 2,
      'name': '商品2'
    } 
  ]

方案三:使用class或者interface,也是官方推荐,优点是可以自定义初始化方式比较灵活,缺点就是代码量比较多。

class MyBean {
  id: number
  name: string
  constructor(id: number, name: string) {
    this.id = id
    this.name = name
  }
}



 list: MyBean[] = [
   new MyBean(1, ‘商品1’),
   new MyBean(2, ‘商品2’),
 ]
 
}```
还是建议定义为 interface 或 class

在HarmonyOS的.ets文件中定义数组并报错,通常可能是因为语法错误或环境配置问题。首先,确保你使用的是正确的语法来定义数组。在.ets文件中,通常使用JavaScript或TypeScript的语法,数组定义类似于let myArray = [1, 2, 3];

此外,检查你的项目配置是否支持.ets文件及其语法。确认所有依赖和插件都已正确安装和配置。

如果问题依旧没法解决,请加我微信,我的微信是itying888,以便进一步分析具体问题所在。

回到顶部