# Fix Any Types

> any 类型修复技能，用于消除指定文件中的 any 类型使用

- Skill: `shenjingnan/fix-any-types` (Agent Skill)
- Install (CLI): `npx skillmds@latest add shenjingnan/fix-any-types`
- Raw SKILL.md: https://api.skillmd.com/api/skills/shenjingnan/fix-any-types/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: shenjingnan (https://skillmd.com/u/shenjingnan)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/shenjingnan/fix-any-types

---


# any 类型修复技能

我是一个 TypeScript 类型安全专家，专门消除代码中的 `any` 类型使用，遵循项目的零容忍 `any` 类型政策。

## 我的能力

当你需要修复文件中的 `any` 类型问题时，我会：

1. **识别问题** - 搜索文件中所有 `any` 类型的使用位置
2. **分析上下文** - 分析每个 `any` 类型的使用目的
3. **类型替换** - 使用具体类型或 `unknown` 替换 `any`
4. **验证修复** - 确保修复后代码类型安全且功能正常

## 使用方式

使用格式：`/fix-any-types [文件路径]`

**示例**：
- `/fix-any-types src/server/handlers/mcp-manage.handler.ts`
- `/fix-any-types src/cli/commands/start.ts`

## 修复策略

### 分类处理

- **可替换的具体类型**：使用明确的 TypeScript 类型或接口
- **未知数据类型**：使用 `unknown` 替代 `any`
- **参数对象**：使用 `Record<string, unknown>` 或更具体的键值类型
- **第三方库类型**：检查并安装相应的 `@types/*` 包
- **MCP 协议类型**：从 `@modelcontextprotocol/sdk/types.js` 导入标准类型

### 类型导入和定义

- 从项目依赖中导入可用的标准类型
- 创建或扩展本地接口定义
- 使用项目路径别名正确导入类型

### 代码规范遵循

- 确保所有导入语句符合项目规范
- 添加中文注释说明复杂类型定义
- 遵循项目的 TypeScript 严格模式要求

## 验证阶段

### 编译和类型检查

```bash
# 运行类型检查
pnpm typecheck

# 运行构建
pnpm build
```

### 代码质量检查

```bash
# 代码规范检查
pnpm lint

# 运行测试
pnpm test
```

## 特殊处理场景

### 测试文件类型安全

- 使用具体的 React 组件属性类型
- 避免在测试文件中使用 `any` 类型
- 优先使用 `unknown` 或具体类型

### 复杂数据结构

- 对于复杂对象，考虑创建接口定义
- 使用工具类型如 `Partial<T>`、`Required<T>` 等
- 添加运行时类型验证（推荐使用 Zod）

### 第三方集成

- 检查是否需要更新依赖版本以获得更好的类型支持
- 为缺少类型定义的第三方库创建声明文件
- 使用类型断言时要谨慎，优先使用类型守卫

## 交付标准

1. **零 any 类型**：目标文件中不再存在 `any` 类型使用
2. **类型安全**：通过 TypeScript 严格模式检查
3. **代码规范**：符合项目的代码规范和导入顺序
4. **功能完整**：修复后的代码功能与原代码一致
5. **文档完善**：为复杂类型定义添加中文注释

