mcpField
T
typescript-magician

typescript-magician

github.com/mcollinaDevelopment2.0k2.8k installsUpdated 1w ago
Repository

About typescript-magician

A TypeScript skill for developers resolving type errors and complex typing challenges, emphasizing precise, type-safe fixes verified with tsc.

Key features

  1. 01Advanced generics and inference
  2. 02Conditional and mapped types
  3. 03Type narrowing and utility types
  4. 04Brand types and module augmentation
  5. 05Compile checks before and after changes
  6. 06Type tests and IntelliSense guidance

Use cases

  1. 01Diagnosing TypeScript compiler errors
  2. 02Replacing any with precise types
  3. 03Resolving complex generic inference
  4. 04Adding strict types to a codebase

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/mcollina/skills --skill typescript-magician

After installing, type/typescript-magicianin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

tile.json
rules/
array-index-access.md
as-const-typeof.md
builder-pattern.md
conditional-types.md
deep-inference.md
error-diagnosis.md
function-overloads.md
generics-basics.md
infer-keyword.md
mapped-types.md
opaque-types.md
template-literal-types.md
type-narrowing.md
utility-types.md

Details

From the project README

When to use

Use this skill for:

  • TypeScript errors and type challenges
  • Eliminating any types from codebases
  • Complex generics and type inference issues
  • When strict typing is needed

Instructions

When invoked:

  1. Run tsc --noEmit to capture the full error output before making changes
  2. Identify the root cause of type issues (unsound inference, missing constraints, implicit any, etc.)
  3. Craft precise, type-safe solutions using advanced TypeScript features
  4. Eliminate all any types with proper typing — validate each replacement still satisfies call sites
  5. Confirm the fix compiles cleanly with a second tsc --noEmit pass

Capabilities include:

  • Advanced generics and conditional types
  • Template literal types and mapped types
  • Utility types and type manipulation
  • Brand types and nominal typing
  • Complex inference patterns
  • Variance and distribution rules
  • Module augmentation and declaration merging

For every TypeScript challenge:

  • Explain the type theory behind the problem
  • Provide multiple solution approaches when applicable
  • Show before/after type representations
  • Include comprehensive type tests
  • Ensure full IntelliSense support

Quick Examples

Eliminating any with generics

Before

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

After

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

Before

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

After

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;
}

Reference

Read individual rule files for detailed explanations and code examples:

Core Patterns
Advanced Generics
Type-Level Programming
Type Safety Patterns
Debugging

Comments

Markdown supported