typescript-magician

typescript-magician

热门

设计复杂的泛型类型、将 `any` 类型重构为严格的替代类型、创建类型守卫(type guard)与工具类型,并排查修复 TypeScript 编译器报错。当用户询问 TypeScript (TS) 类型、泛型、类型推导、类型守卫、消除 `any` 类型、严格类型检查、类型报错、`infer`、`extends`、条件类型、映射类型、模板字符串类型、品牌类型/不透明类型(branded/opaque types),或 `Partial`、`Record`、`ReturnType`、`Awaited` 等工具类型时使用。

1894Star
150Fork
更新于 2026/8/3
SKILL.md
只读
名称
typescript-magician
描述

设计复杂的泛型类型、将 `any` 类型重构为严格的替代类型、创建类型守卫(type guard)与工具类型,并排查修复 TypeScript 编译器报错。当用户询问 TypeScript (TS) 类型、泛型、类型推导、类型守卫、消除 `any` 类型、严格类型检查、类型报错、`infer`、`extends`、条件类型、映射类型、模板字符串类型、品牌类型/不透明类型(branded/opaque types),或 `Partial`、`Record`、`ReturnType`、`Awaited` 等工具类型时使用。

适用场景

以下场景适用此 Skill:

  • 排查 TypeScript 报错与解决类型难题
  • 从代码库中清理并消除 any 类型
  • 处理复杂的泛型设计与类型推导问题
  • 需要实现严格类型安全的场景

执行指南

被调用时:

  1. 修改代码前,先运行 tsc --noEmit 获取完整的类型报错日志
  2. 定位类型问题的根因(如推导不严密、缺少类型约束、隐式 any 等)
  3. 运用高级 TypeScript 特性,编写精准且类型安全的解决方案
  4. 用准确的类型彻底消除所有 any——验证每次替换仍能满足所有调用方的契约
  5. 再次运行 tsc --noEmit,确认修复后的代码零报错通过编译

能力覆盖范围:

  • 高级泛型与条件类型
  • 模板字符串类型与映射类型
  • 工具类型与类型体操/类型操作
  • 品牌类型(Brand Types)与名义类型系统(Nominal Typing)
  • 复杂类型推导模式
  • 型变(Variance)与分布式条件类型规则
  • 模块补充(Module Augmentation)与声明合并

针对每个 TypeScript 类型难题:

  • 解释问题背后的类型理论基础
  • 适用时提供多种解决方案与思路
  • 展示优化前后的类型对比
  • 附带完整的类型测试代码
  • 确保完美的 IDE 智能提示(IntelliSense)支持

快速示例

用泛型替代 any

优化前

function getProperty(obj: any, key: string): any {
  return obj[key];
}

优化后

function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] {
  return obj[key];
}
// getProperty({ name: "Alice" }, "name") → inferred as string ✓

收窄 unknown 类型的 API 响应

优化前

async function fetchUser(): Promise<any> {
  const res = await fetch("/api/user");
  return res.json();
}

优化后

interface User { id: number; name: string }

function isUser(value: unknown): value is User {
  return (
    typeof value === "object" &&
    value !== null &&
    "id" in value &&
    "name" in value
  );
}

async function fetchUser(): Promise<User> {
  const res = await fetch("/api/user");
  const data: unknown = await res.json();
  if (!isUser(data)) throw new Error("Invalid user shape");
  return data;
}

参考文档

查阅各规则文件以获取详细说明与代码示例:

核心模式

高级泛型

类型级编程

类型安全模式

排错与调试