Feature TypeScript Interface TypeScript Type
Purpose Defines the shape of an object or class Defines the shape of objects, primitives, unions, intersections, and more
Extensibility Other interfaces or types can extend it Can be extended (intersected) using ‘&’
Merging Supports declaration merging (can add fields across multiple declarations) Does not support declaration merging
Type Composition Extend interfaces or other types Can compose complex types through unions (‘
Primitive Types It cannot represent primitive types like string or number It can represent primitive types like string, number, boolean, etc
Callable/Constructible Types Supports defining callable and constructable types Supports defining callable and constructable types
Declaration Syntax Uses interface keyword Uses type keyword
React Props & State Preferred for defining component props and state in React Can also define component props and state but often less preferred
Use Cases Best for defining the structure of objects or classes in large codebases Best for union, intersections, and complex type compositions