用途:系统性查找并替换 TypeScript 中的 any 类型,用精确类型、泛型或 unknown 加收窄替代,提升类型安全且不破坏构建。
主要能力:将 any 出现场景分类(惰性标注、未类型化第三方数据、弱泛型、类型逃生舱 as any、隐式 any、any[] 集合、回调参数、catch 绑定);提供发现、替换、执行顺序与输出格式的完整流程。
必要用法:先用 grep 定位显式 any,例如 grep -rn ": any" src/ --include=".ts" --include=".tsx"、grep -rn "as any" src/、grep -rn "<any>" src/;用 npx tsc --noEmit --strict 暴露隐式 any;审计 tsconfig.json 的 strict、noImplicitAny、strictNullChecks。替换策略包括:惰性标注改用真实类型;运行时数据建模为 interface;弱泛型引入 <T> 或 K extends keyof T;as any 通过声明合并或 as unknown as T 修复;未知数据用 unknown 加收窄或 Zod 校验;隐式参数补标注或删除冗余标注;catch (e: any) 改为 catch (e: unknown) 并用 instanceof Error 判断;any[] 改为具体数组或元组。执行顺序为由外向内:先修数据获取/解析函数返回类型,再修导出签名、共享工具泛型、内部调用点、catch 与局部变量,最后开启 noImplicitAny 或 strict 并逐文件运行 tsc --noEmit。
适用场景:改进类型安全、修复隐式 any、清理 as any、处理 API 响应与 JSON.parse 等边界数据。
限制:资料未提供安装命令、收费、价格、平台与效果信息;需逐文件重构,避免一次性替换全部 any。