Q6: What is the difference between `type` aliases and `interface` declarations?
Both type and interface define structural contracts, but they differ in capabilities:
Interface vs Type Alias Comparison
Declaration Merging:
Supported by `interface` | Unsupported by `type`Multiple interface declarations with the same name automatically merge properties.
Union & Primitives:
Unsupported by `interface` | Supported by `type`Type aliases can define unions (
A | B), primitives, tuples, and mapped types directly.Extensibility:
`extends` keyword vs Intersection (`&`)Interfaces extend other interfaces; types create intersections.
Key Takeaways
- Use
interfacefor public API contracts and object structures that benefit from declaration merging. - Use
typefor union types, tuples, primitives, and complex mapped/conditional types.