Interfaces in typescript

Interfaces define object shapes and can be extended, merged, and implemented by classes. They're ideal for defining API contracts. Declaration merging lets you extend third-party interfaces. Use interfaces for objects, type aliases for unions.