HarmonyOS在升級(jí)到API12后苇经,原本的動(dòng)態(tài)類型屬性定義 [key: string]已不再支持
class Person {
[key: string]: string | number // ArkTS報(bào)錯(cuò)
}
解決方式
不定義class 使用type
value為基本類型
// 設(shè)定一個(gè)對(duì)象類型,key為string類型 value為number類型
type dataType = Record<string, number>
@State data: dataType = { a: 1 }
value為引用類型 即多層級(jí)動(dòng)態(tài)數(shù)據(jù)
class PersonType {
a: 1,
b: 2
}
// 設(shè)定一個(gè)對(duì)象類型,key為string類型 value為PersonType類型
type dataType = Record<string, PersonObjType >
@State data: dataType = { "動(dòng)態(tài)key": { a: 1, b: 2 } }
// 設(shè)定一個(gè)對(duì)象類型,key為string類型 value為包含PersonType的數(shù)組類型
type dataType = Record<string, Array<PersonType>>
@State data: dataType = { "動(dòng)態(tài)key": [{ a: 1, b: 2 }] }