HarmonyOS 鸿蒙Next ArkTS实现深拷贝方法,禁用any和对象操作

发布于 1周前 作者 songsunli 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next ArkTS实现深拷贝方法,禁用any和对象操作

禁用了any、unkown和条件类型,还禁用了一堆对象操作方法

4 回复
function deepCopy(obj: any): any {
if (typeof obj !== "object" || obj === null) {
return obj;
}
let copy: any;
if (Array.isArray(obj)) {
copy = [];
for (let i = 0; i < obj.length; i++) {
copy[i] = deepCopy(obj[i]);
}
} else {
copy = {};
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
copy[key] = deepCopy(obj[key]);
}
}
}
return copy;
}

any可以用ESObject代替

“for … in” is not supported (arkts-no-for-in) <ArkTSCheck> let in那句会报这个错,请问怎么解决呀

放在ts文件里面就好了

在HarmonyOS的ArkTS中实现深拷贝,特别是在禁用any和直接对象操作的情况下,你可以通过自定义序列化与反序列化过程或使用结构化克隆(如果ArkTS支持)来实现。利用TypeScript的映射类型与递归函数可以安全地处理复杂对象。确保所有属性都通过类型安全的方式处理,避免使用any。如果问题依旧没法解决请加我微信,我的微信是itying888。

回到顶部