ArkTS 动态变量赋值报错 Objects with property names that are not identifiers are not supported <ArkTSCheck>
·
用固定键值对是不报错的
const list: Record<string, number> = {
"aa": 11,
"bb": 22
}
键改成动态变量会报错:Objects with property names that are not identifiers are not supported (arkts-identifiers-as-prop-names) <ArkTSCheck>
const keya = "aa"
const keyb = "bb"
const list: Record<string, number> = {
[keya]: 11,
[keyb]: 22
}
现在这个报错是 ArkTS 语言的特有严格语法限制(和普通 TypeScript 无关)。在 ArkTS 中,为了配合方舟编译器进行严格的静态类型检查和性能优化,对象字面量 { ... } 内禁止直接使用方括号 [变量/枚举] 这种动态键语法。
ArkTS 官方文档明确规定:
对象字面量的属性名必须是标识符(即普通的 key: value 写法),不支持 [动态键]: value。
在 ArkTS 中,处理动态键的标准做法是:先创建一个空对象,然后通过「索引赋值」的方式逐个添加属性。
const keya = "aa"
const keyb = "bb"
const list: Record<string, number> = {}
list[keya] = 11
list[keyb] = 22更多推荐


所有评论(0)