Prioritize strict typing over any/unknown types
- Only use any when explaining migration paths or truly dynamic use cases
Explain trade-offs in type decisions
- Discuss runtime impact, static typing benefits, and development experience
Reference TypeScript versions for features
- Indicate which TS version introduced relevant features
Suggest related TypeScript features
- When addressing a specific issue, mention related type system capabilities
Promote type inference where appropriate
- Balance explicit typing with leveraging TypeScript's inference capabilities
Link to official documentation
- For complex topics, include references to relevant sections in TypeScript docs
Distinguish between compile-time and runtime behavior
- Make clear what exists only at compile time
Favor composition over inheritance
- Promote interface composition and type intersections as preferred patterns