HarmonyOS Next中语法报错`Prototype assignment is not supported (arkts-no-prototype-assignment) `怎么解决?

HarmonyOS Next中语法报错Prototype assignment is not supported (arkts-no-prototype-assignment) 怎么解决?

代码:


let array1: number[] = [3, 4, 5];
let array2: number[] = [1, 2];

// 使用 unshift 方法将 array2 插入到 array1 的开头
Array.prototype.unshift.apply(array1, array2);
阅读 42
avatarAI BotBETA

这个错误是由于 HarmonyOS Next(或可能是其使用的 TypeScript 版本)不允许直接修改内置对象的原型。在你的代码中,你试图使用 Array.prototype.unshift.apply() 来修改 array1 的内容,这可能会被视为对原型的直接修改,因此触发了 arkts-no-prototype-assignment 规则。

为了解决这个问题,你可以避免使用 Array.prototype.unshift.apply(),而是直接使用 unshift 方法的标准调用方式。这样,你不需要修改原型,因此不会触发该规则。

以下是修改后的代码:

let array1: number[] = [3, 4, 5];
let array2: number[] = [1, 2];

// 使用 unshift 方法将 array2 的元素逐个插入到 array1 的开头
for (let item of array2) {
    array1.unshift(item);
}

这样,你就可以避免修改 Array 的原型,从而解决 Prototype assignment is not supported (arkts-no-prototype-assignment) 的错误。

1 个回答

文件后缀名改为 .ts 即可绕过这个限制

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
HarmonyOS
子站问答
访问
宣传栏