HarmonyOS在升级到API12后,原本的动态类型属性定义 [key: string]已不再支持
class Person {
[key: string]: string | number // ArkTS报错
}
解决方式
不定义class 使用type
value为基本类型
// 设定一个对象类型,key为string类型 value为number类型
type dataType = Record<string, number>
@State data: dataType = { a: 1 }
value为引用类型 即多层级动态数据
class PersonType {
a: 1,
b: 2
}
// 设定一个对象类型,key为string类型 value为PersonType类型
type dataType = Record<string, PersonObjType >
@State data: dataType = { "动态key": { a: 1, b: 2 } }
// 设定一个对象类型,key为string类型 value为包含PersonType的数组类型
type dataType = Record<string, Array<PersonType>>
@State data: dataType = { "动态key": [{ a: 1, b: 2 }] }