typescript
Installation
SKILL.md
TypeScript Skill Index
Sub-Skills Reference
| Domain | File | When to use |
|---|---|---|
| Basic Types | basic-types.md | Annotating variables and functions; choosing between type options; understanding TS type basics. DO NOT USE FOR advanced types like mapped/conditional or generics. |
| Advanced Types | advanced-types.md | Building complex type-level logic; creating type-safe utilities; narrowing types at runtime. DO NOT USE FOR basic type annotations, generics basics, or utility types. |
| Generics | generics.md | Writing reusable typed code; constraining generic parameters; building typed abstractions. DO NOT USE FOR basic types or advanced type-level logic. |
| Utility Types | utility-types.md | Transforming existing types; building DTOs from models; creating type-safe helpers. DO NOT USE FOR basic type syntax or conditional/mapped type internals. |
| Interfaces vs Types | interfaces-vs-types.md | Choosing between interface and type; understanding declaration merging; designing public APIs. DO NOT USE FOR basic types or advanced type manipulation. |
| Type Inference | type-inference.md | Understanding what TS infers automatically; debugging unexpected inferred types; optimizing type annotations. DO NOT USE FOR explicit type annotations or type narrowing guards. |
| Type Safety | type-safety.md | Hardening code against type errors; eliminating any; adding runtime validation; making impossible states unrepresentable. DO NOT USE FOR basic types or tsconfig strict options. |
| Error Handling | error-handling.md | Designing error handling strategies; creating typed error hierarchies; implementing Result types; validating input with Zod. DO NOT USE FOR Express error middleware or JS error basics. |
| Object-Oriented | object-oriented.md | Designing typed class hierarchies; implementing design patterns in TS; using abstract classes or interfaces for contracts; leveraging generics in OOP. DO NOT USE FOR basic TS types, generics deep-dive, or JS OOP without types. |
| Decorators | decorators.md | Using NestJS or similar frameworks; implementing cross-cutting concerns; understanding decorator patterns. DO NOT USE FOR general OOP or class basics. |
| Modules & Namespaces | modules-namespaces.md | Typing modules; writing declaration files; augmenting third-party types; migrating from namespaces to modules. DO NOT USE FOR JS module basics or tsconfig module settings. |
| Config / tsconfig | config-tsconfig.md | Setting up a TS project; configuring compiler options; fixing module resolution; setting up path aliases. DO NOT USE FOR ESLint/Prettier config or build tool config. |
| Convention | convention.md | Setting up project standards; reviewing code style; onboarding developers to TS conventions. DO NOT USE FOR tsconfig setup or ESLint rules. |