@aedge-io/typed-clone
一个类型安全、高性能且可扩展的JavaScript对象克隆工具。
安装使用
复制下面这段提示词发给你的 AI(Claude / Cursor / TRAE / Codex / WorkBuddy 等),它会自动帮你完成安装:
帮我安装这个 AI Skill:@aedge-io/typed-clone。 它的用途是:一个类型安全、高性能且可扩展的JavaScript对象克隆工具。 完整的 Skill 内容见:https://321skill.com/skills/aedge-io-typed-clone/raw/index.md 请读取该页面内容,如果是 SKILL.md 格式直接安装,如果是 README 提炼核心 prompt 后安装。
提示词包含完整的 Skill 内容链接,AI 读取后即可完成安装。你也可以 查看完整内容 确认无误。
使用示例
“帮我把这个用户配置对象深拷贝一份,然后修改其中的主题设置。”,AI会利用typed-clone生成一个类型完全相同的独立副本,让你在修改新对象时完全不影响原始数据,确保操作的安全性和可预测性。
介绍
在JavaScript开发中,深度克隆对象是一个常见但容易出错的需求,尤其是处理复杂数据结构或需要保持类型信息时。typed-clone提供了一个类型安全的解决方案,它不仅能创建对象的深拷贝,还能确保TypeScript类型推断的准确性,避免运行时类型错误。
使用上非常简单,通过npm安装后,导入其clone函数,传入需要克隆的任意对象即可。它支持包括Map、Set、Date在内的多种内置对象类型,并允许通过插件机制扩展对自定义类的克隆支持。
这个库非常适合使用TypeScript进行中大型项目开发的工程师,以及对代码健壮性和类型安全有较高要求的团队。它尤其适用于需要频繁传递或修改复杂状态对象的场景,如状态管理、数据转换和测试用例准备。
建议在项目中统一使用此库替代手写的克隆逻辑或JSON.parse(JSON.stringify())这类有缺陷的方法。需要注意的是,虽然它支持扩展,但对于包含函数、循环引用或特殊宿主环境对象(如DOM节点)的克隆,需要评估其默认行为或自行编写处理器。
核心特点
与Lodash的`cloneDeep`等工具相比,typed-clone在TypeScript环境下能提供更精确的返回类型推断,确保克隆后的对象类型与原对象完全一致;同时,其插件化架构允许开发者轻松添加对自定义类实例的克隆支持,这是许多通用克隆库所不具备的。
注意事项
不适合需要克隆包含函数、DOM元素或复杂循环引用且未配置相应处理器的场景。
常见问题
typed-clone和JSON.parse(JSON.stringify())有什么区别?
它能正确处理Date、Map等JSON不支持的类型,且保持TypeScript类型,性能也更好。
支持克隆包含函数的对象吗?
默认不支持,但可以通过编写自定义处理器(plugin)来实现。
给 AI 助手的安装指引
如果你的 AI 编程助手(Claude Code、Cursor、TRAE 等)能看到这个页面,把下面这段发给它即可自动完成安装:
请访问 https://321skill.com/skills/aedge-io-typed-clone/raw/index.md 读取 @aedge-io/typed-clone 的原始 Skill 定义(Markdown 格式),按其中说明在我的环境里完成安装和配置。
AI 可直接读取的原始 Markdown 地址:/skills/aedge-io-typed-clone/raw/index.md(查看排版版本)