skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
oakoss/agent-skills167 installs

typescript-patterns

Advanced TypeScript patterns for strict mode development. Covers type utilities (Pick, Omit, Partial, Record, Awaited), generics with constraints and inference, type guards and narrowing, discriminated unions, conditional and mapped types, template literal types, const assertions, satisfies operator, module patterns, and modern JavaScript idioms (eslint-plugin-unicorn). Use when building type-safe APIs, preventing runtime errors through types, working with strict TypeScript configuration, debugging complex type errors, or enforcing modern JS idioms. Use for generics, type guards, utility types, strict mode, type inference, narrowing, type safety, const assertions, satisfies, module augmentation, unicorn, for-of, modern-js.

How do I install this agent skill?

npx skills add https://github.com/oakoss/agent-skills --skill typescript-patterns
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    The skill is a collection of educational documentation and code snippets for advanced TypeScript patterns and modern JavaScript idioms. It is safe to use and follows industry best practices.

  • Socketpass

    No alerts

  • Snykpass

    Risk: LOW · No issues

  • Runlayerpass

    10 files scanned · No issues

What does this agent skill do?

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

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/oakoss/agent-skills/typescript-patterns">View typescript-patterns on skillZs</a>