用途:把测试代码里基于 as 的类型断言迁移为 @total-typescript/shoehorn 的类型安全写法。shoehorn 允许在测试中传入部分数据,同时让 TypeScript 保持通过校验。仅限测试代码,切勿在生产代码中使用。
主要能力与替换模式:
as Type替换为fromPartial(),用于传递仍能通过类型检查的部分数据;适合只需少量属性的大型对象(如只关心 body.id 的 Request)。as unknown as Type替换为fromAny(),用于故意传入错误数据并保留自动补全。fromExact()用于强制完整对象,之后可与 fromPartial 互换。
安装:npm i @total-typescript/shoehorn
典型工作流:先向用户确认哪些测试文件存在引发问题的 as 断言、是否涉及只需部分属性的大型对象、是否需要故意传错数据做错误测试;然后安装依赖,查找含 as 断言的测试文件,例如 grep -r " as [A-Z]" --include=".test.ts" --include=".spec.ts",将对应断言替换为 fromPartial() 或 fromAny(),补充从 @total-typescript/shoehorn 的导入,最后运行类型检查验证。
使用限制:仅适用于测试代码;具体支持的文件类型、框架范围及其他细节暂未提供。