{title="📊 页面导航】
适用角色与上手难度
🎯 学习产出: 掌握 shoehorn 迁移方法,能用类型安全的方式在测试中传部分数据
🚀 AI 能力提升: 类型安全、测试质量
migrate-to-shoehorn
预计阅读时间: 3 分钟测试断言迁移。把测试文件里的 as 类型断言迁移到 @total-typescript/shoehorn。只改测试代码,绝不进生产代码。
概述
为什么用 shoehorn? 它让你在测试里传部分数据而保持 TypeScript 满意,用类型安全替代 as 断言。as 在测试里的问题:模型被训练得不爱用它;必须手动指定目标类型;故意传错数据要双重断言 as unknown as Type。
日常使用
实战
安装
三个迁移模式
大对象只要几个属性:
as Type → fromPartial():
as unknown as Type → fromAny()(故意传错数据):
何时用哪个
工作流
- 收集需求:哪些测试文件的
as断言有问题?是大对象只要部分属性吗?要故意传错数据做错误测试吗? - 安装并迁移:安装 → 找到断言(
grep -r " as [A-Z]" --include="*.test.ts" --include="*.spec.ts")→as Type换fromPartial()→as unknown as Type换fromAny()→ 加 import → 跑类型检查验证
与其它技能的关系
- 同类:
setup-pre-commit的 typecheck 会在迁移后立刻验证类型正确 - 仅 TypeScript:为 TS 测试生态设计

