- Home
- Skills
- Beshkenadze
- Claude Skills Marketplace
- Typescript Advanced Types
typescript-advanced-types_skill
- Shell
0
GitHub Stars
1
Bundled Files
2 months ago
Catalog Refreshed
4 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstrat where the catalogue uses aiagentskills.
npx veilstrat add skill beshkenadze/claude-skills-marketplace --skill typescript-advanced-types- SKILL.md11.1 KB
Overview
This skill provides concise, practical guidance for mastering TypeScript's advanced type system: generics, conditional types, mapped types, template literal types, utility types, and common advanced patterns. It focuses on building robust, type-safe libraries and complex type logic with real-world patterns and quick reference notes. Ideal for library authors and teams migrating large codebases to strict typing.
How this skill works
The content inspects and explains core type features and patterns, showing how to declare, constrain, and compose types to preserve runtime correctness at compile time. It demonstrates extraction and inference techniques (infer, conditional distribution), property transformation (mapped types, key remapping), and string pattern types (template literals). Practical patterns include typed event emitters, deep readonly/partial, and discriminated unions.
When to use it
- Building reusable, type-safe libraries or frameworks
- Designing strongly-typed API clients and configuration objects
- Implementing complex type inference or conditional type logic
- Creating reusable generic UI components and form validation systems
- Migrating JavaScript codebases to TypeScript with strict mode
Best practices
- Prefer unknown over any to force explicit checks
- Enable strict mode and leverage type inference where possible
- Use interface for object shapes and type for unions/aliases
- Create small reusable helper types instead of huge nested types
- Prefer type guards and assertion functions over unchecked assertions
- Avoid excessive type complexity that slows compilation; split helpers logically
Example use cases
- A typed event emitter that enforces event payload shapes at compile time
- A deep readonly/partial utility for immutable config objects
- Path-building template literal types for nested config key access
- Discriminated unions for clear async state handling in UI code
- Generic API client types that infer response shapes and parameters
FAQ
A conditional type of the form T extends U ? X : Y distributes when T is a union. To prevent distribution wrap T in a tuple: [T] extends [U] ? X : Y.
When should I use mapped types vs utility types?
Use built-in utility types (Partial, Readonly, Pick, Omit) for common transforms. Use custom mapped types when you need key remapping, filtering by property type, or nested transformations.
How can I extract return or element types?
Use infer inside a conditional type, e.g. T extends (...args: any) => infer R ? R : never for return types, or T extends (infer U)[] ? U : never for array elements.