commandby shenjingnan

Fix Type Fail

修复类型检查失败

Installs: 0
Used in: 1 repos
Updated: 2d ago
$npx ai-builder add command shenjingnan/fix-type-fail

Installs to .claude/commands/fix-type-fail.md

我在目录 `<path>$1</path>` 执行命令 `pnpm check:type`
发现有很多类型错误,如下
<error-log>$2</error-log>

请按照以下步骤系统性地分析和修复所有类型错误:

## 1. 错误分类和初步分析

### 1.1 解析错误日志

- 统计错误总数和涉及的文件数量
- 识别错误类型分布(TS2339、TS2345、TS2352、TS7006 等)
- 按文件分组错误,优先处理错误数量最多的文件

### 1.2 常见错误类型识别

- **TS2339**:属性不存在错误 → 检查接口定义和类型导入
- **TS2345**:参数类型不匹配 → 检查函数签名和参数类型
- **TS2352**:类型转换错误 → 避免使用 `as any`,使用类型守卫
- **TS7006**:隐式 any 类型 → 添加显式类型注解
- **TS2307**:模块找不到 → 检查导入路径和模块导出

## 2. 制定修复策略

### 2.1 优先级排序

1. **高优先级**:影响编译的核心类型错误(接口缺失、函数签名错误)
2. **中优先级**:类型注解缺失、可选参数处理
3. **低优先级**:类型推断优化、非空断言优化

### 2.2 修复方法选择

- **接口扩展**:为缺失的属性添加接口定义
- **类型守卫**:使用 `is` 函数进行类型保护
- **泛型优化**:使用泛型提高类型安全性
- **工具类型**:合理使用 `Partial<T>`、`Required<T>` 等工具类型

## 3. 实施修复

### 3.1 文件修复顺序

- 先修复类型定义文件(`*.d.ts`、`types.ts`)
- 再修复核心业务逻辑文件
- 最后修复测试文件

### 3.2 具体修复步骤

1. **读取错误文件**:逐一分析每个出错的 TypeScript 文件
2. **理解代码意图**:分析代码的业务逻辑和预期行为
3. **添加类型定义**:为缺失的类型创建或扩展接口
4. **修复类型错误**:按照优先级逐个修复错误
5. **保持向后兼容**:确保修复不破坏现有功能

### 3.3 特殊情况处理

- **测试文件**:使用测试工具函数避免类型断言,参考项目的 `test-types.ts`
- **第三方库**:检查是否需要安装类型定义包(`@types/*`)
- **遗留代码**:渐进式添加类型,避免大规模重构

## 4. 验证和测试

### 4.1 编译验证

- 运行 `pnpm check:type` 确保所有类型错误已修复
- 运行 `pnpm build` 确保代码能够正常编译
- 检查生成的类型声明文件(`*.d.ts`)

### 4.2 功能测试

- 运行相关测试用例:`pnpm test <相关测试文件>`
- 确保修复后的代码功能正常
- 执行回归测试避免引入新问题

### 4.3 代码质量检查

- 执行 `pnpm lint` 进行代码规范检查和自动修复
- 确保代码符合项目的类型安全要求(如禁用 `any` 类型)
- 验证导入导出语句的正确性

## 5. 文档和预防

### 5.1 修复记录

- 记录修复的错误类型和数量
- 说明采用的主要修复策略
- 标记需要注意的特殊情况

### 5.2 预防措施

- 建议启用更严格的 TypeScript 配置
- 推荐 ESLint 规则来预防常见类型错误
- 提供类型安全的最佳实践建议

## 6. 报告要求

请提供以下详细信息:

1. **错误统计**:按类型和文件分布的错误统计
2. **修复过程**:主要修复策略和关键决策点
3. **代码变更**:重要的类型定义修改和接口扩展
4. **测试结果**:所有验证步骤的执行结果
5. **质量检查**:代码规范检查的发现和修复
6. **建议改进**:避免类似错误再次发生的建议

Quick Install

$npx ai-builder add command shenjingnan/fix-type-fail

Details

Type
command
Slug
shenjingnan/fix-type-fail
Created
6d ago