## 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