mcpField
T
typescript-patterns

typescript-patterns

github.com/oakossDevelopment20184 installsUpdated 10w ago
Repository

About typescript-patterns

A reference skill for experienced TypeScript developers using strict mode. It covers type-system patterns for safer APIs, data transformations, and library code rather than introductory lessons.

Key features

  1. 01Utility and mapped types
  2. 02Generic constraints and inference
  3. 03Type guards and narrowing
  4. 04Discriminated unions and exhaustiveness
  5. 05Strict mode and modern type idioms

Use cases

  1. 01Design type-safe APIs
  2. 02Transform complex data with types
  3. 03Author TypeScript libraries

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/oakoss/agent-skills --skill typescript-patterns

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

Bundled files

References and scripts installed along with SKILL.md.

references/
conditional-types.md
discriminated-unions.md
generics.md
mapped-types.md
modern-idioms.md
module-patterns.md
strict-mode.md
type-guards.md
type-utilities.md

Details

From the project README

TypeScript Patterns

Overview

Advanced TypeScript patterns that use the type system to prevent runtime errors. Focuses on strict mode TypeScript with patterns for type inference, narrowing, and compile-time validation. Not a beginner tutorial.

When to use: Building type-safe APIs, complex data transformations, library authoring, preventing runtime errors through types, working with strict mode flags.

When NOT to use: Learning TypeScript basics (primitives, interfaces, classes), JavaScript-to-TypeScript migration guidance, tooling setup, or build configuration.

Quick Reference

PatternAPIKey Points
Utility typesPick<T, K>, Omit<T, K>Extract or exclude properties
Partial/RequiredPartial<T>, Required<T>Make properties optional or required
Record typeRecord<K, V>Object with known keys
Awaited typeAwaited<T>Unwrap Promise return types
ReturnType/ParametersReturnType<F>, Parameters<F>Extract function types
Generic constraints<T extends Type>Constrain generic parameters
Type inferencetype Inferred = typeof valueLet TypeScript infer from values
Type guardstypeof, instanceof, inNarrow types at runtime
Custom type guards(x): x is TypeUser-defined narrowing functions
Inferred predicates(x) => x !== nullAuto-inferred type predicate filters
Discriminated unionsUnion with literal type propertyExhaustive pattern matching
Conditional typesT extends U ? X : YType-level conditionals
Mapped types{ [K in keyof T]: T[K] }Transform all properties
Template literals`${A}-${B}`String literal type manipulation
Const assertionsas constNarrowest possible literal types
Satisfies operatorvalue satisfies TypeType check without widening
NoInfer utilityNoInfer<T>Prevent inference from a position
Const type params<const T extends Type>Narrow inference without as const
Inline type importsimport { type User }Import types explicitly
Module augmentationdeclare module 'lib' { ... }Extend third-party types
Assertion functionsfunction assert(x): asserts x is TThrow if type guard fails

Common Mistakes

MistakeCorrect Pattern
Using any without justificationUse unknown and narrow with type guards
Manual type assertions everywhereLet inference work, type function returns
Destructuring before type narrowingKeep object intact for discriminated unions
Index access without undefined checkEnable noUncheckedIndexedAccess
as Type casting unsafe valuesUse satisfies Type to preserve narrow types
Inline objects in genericsExtract to const or type alias
Omitting extends in constraintsAlways constrain generics when possible
Using Parameters<typeof fn>[0]Type the parameter directly in function
Not handling union exhaustivenessUse never checks in switch/if-else
value as const satisfies TypeUse satisfies Type then as const if needed

Delegation

  • Pattern discovery: Use Explore agent to find existing patterns in codebase
  • Type error debugging: Use Task agent for multi-step type resolution
  • Code review: Delegate to code-reviewer skill for type safety audit

References

Comments

Markdown supported