Clean TypeScript Style Guide
Use TypeScript as a correctness and clarity tool, not as ceremony. Prioritize readable types that genuinely reduce bugs.
Type Declaration
- •PREFER
typealiases for most situations - •USE
interfacefor public, extensible object shapes - •Keep types small and composable
Function Design
- •PREFER explicit return types for public functions
- •Use function overloads sparingly, only when they meaningfully enhance the API
Nullability
- •Handle
nullandundefinedexplicitly through control flow and guards - •AVOID non-null assertions (
!) as regular practice
Avoid Anti-patterns
- •AVOID
enum- use union types oras constobjects instead - •AVOID
any- useunknownas the safer alternative
Error Handling
- •Type errors explicitly
- •Consider result objects or typed errors over broad exception throwing
Philosophy
If a type is hard to understand, it's probably wrong. Prioritize maintainability and clear intent over theoretical type system completeness.