Interfaces describe object shapes and can be extended/merged. Type aliases can represent primitives, unions, intersections, and tuples. Use interfaces for public object contracts, type aliases for more flexible compositions.
Expanding on the short answer — what usually matters in practice:
A tiny example (an explanation template):
// Example: discuss trade-offs for "type-alias-vs-interface-—-what’s-the-difference-"
function explain() {
// Start from the core idea:
// Interfaces describe object shapes and can be extended/merged. Type aliases can represent p
}