这个错误是由于 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)
的错误。
这种报错通常是因为在鸿蒙开发中不支持直接对原型进行修改操作,你可以通过以下方式来解决这个问题:
let array1: number[] = [3, 4, 5];
let array2: number[] = [1, 2];
for (let num of array2) {
}