用途:把测试文件里为通过类型检查而写的 as 断言迁移为 @total-typescript/shoehorn 提供的方式,让测试传入部分数据时仍保持 TypeScript 类型正确。资料明确说明 shoehorn 仅限测试代码,切勿在生产代码中使用。
主要能力与替换模式:as Type 改为 fromPartial();as unknown as Type(故意传错类型)改为 fromAny()。按资料表格,fromPartial() 用于传递部分数据仍能通过类型检查,fromAny() 用于传递故意错误的数据并保留自动补全,fromExact() 用于强制传入完整对象、后续可替换为 fromPartial。
安装:npm i @total-typescript/shoehorn
迁移流程:先向用户收集需求,询问哪些测试文件中的 as 断言造成问题、是否涉及只有部分属性重要的大对象、是否需要为错误测试传入故意错误的数据;然后安装依赖;用 grep -r " as [A-Z]" --include=".test.ts" --include=".spec.ts" 查找含 as 断言的测试文件;把 as Type 替换为 fromPartial(),把 as unknown as Type 替换为 fromAny();从 @total-typescript/shoehorn 添加 import;最后运行类型检查验证。
适用场景:大型对象但测试只关心少数属性时,避免手动伪造全部字段。限制:仅限测试代码;除此之外的具体版本、支持范围等信息暂未提供。