This visual execution shows how to decide between interface and type alias in TypeScript. First, you define an interface User with a name property, creating an object shape that supports extension and merging. Then, you define a type alias ID as a union of number or string, useful for flexible types beyond objects. The execution table traces these definitions and their usage. Variable tracker shows how User and ID change from undefined to their defined forms. Key moments clarify why interfaces are chosen for extensible objects and type aliases for unions or primitives. The quiz tests understanding of when and why to use each. The snapshot summarizes the syntax and decision rules for quick reference.