用途:把测试代码里的 as 类型断言替换为 @total-typescript/shoehorn 提供的类型安全替代方案,让测试可以只传部分数据同时保持 TypeScript 通过。仅限测试代码,绝不可用于生产代码。
主要能力与替换规则:as Type 改为 fromPartial(),用于传递仍能通过类型检查的部分数据;as unknown as Type 改为 fromAny(),用于故意传错数据并保留自动补全;fromExact() 用于强制完整对象,之后可再换成 fromPartial()。
安装:npm i @total-typescript/shoehorn
使用方式:先确认哪些测试文件存在有问题的 as 断言、是否涉及只需部分属性的大对象、是否需要故意传错数据做错误测试;然后安装依赖,用 grep -r " as [A-Z]" --include=".test.ts" --include=".spec.ts" 查找断言,替换后补充 import,最后运行类型检查验证。
适用场景:测试中需要伪造大型对象(如 Request)但只关心少数属性时,可避免手写全部字段。
限制:仅适用于测试代码;具体支持的框架、版本要求等资料暂未提供。