About typescript-advanced
typescript-advanced is a development skill for TypeScript work involving generics, conditional and mapped types, inference, or reusable type utilities. It provides focused references and guidance on maintainable type design and validation.
Key features
- 01Guidance on advanced TypeScript types
- 02Patterns for reusable type utilities
- 03Advice on inference and narrowing
- 04Type-contract test guidance
- 05Compiler configuration and complexity guidance
Use cases
- 01Design a generic reusable client
- 02Investigate conditional or mapped type behavior
- 03Improve inference at untrusted boundaries
- 04Check a library's public type contract
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ pedronauck/ skills --skill typescript-advancedAfter installing, type/typescript-advancedin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/advanced-patterns.mdbest-practices.mdcore-concepts.mdtype-inference.mdDetails
From the project READMETypeScript Advanced Types
Use this skill when generic inference, conditional/mapped types, template literals, or a reusable type utility is the actual problem. Ordinary typed API, form, and state work uses its domain guidance unless advanced type behavior needs attention.
| Concern being changed | Reference |
|---|---|
| Generics, conditional/mapped/template-literal and utility types | references/core-concepts.md |
| Reusable emitters, builders, clients, deep utilities, or discriminated models | references/advanced-patterns.md |
infer, narrowing, assertion functions, and type-contract tests | references/type-inference.md |
| Compiler configuration, type complexity, and maintainability | references/best-practices.md |
Prefer the simplest type that expresses the contract. Use unknown and real narrowing at untrusted boundaries; preserve discriminants and readonly intent. Let inference handle local values and follow repository conventions for public annotations, interface, and type.
Use the existing tsconfig; reference configurations are examples, not instructions to change it. Add compile-time tests only when type behavior is a product/library contract, using its owning suite. Avoid a new type framework or elaborate generic abstraction for a single ordinary call site. Run the repository's affected typecheck gate.