An interface describes an object contract. A type alias can name an object, a union, a function type, or an intersection. Choose the shape that states the relationship you need, rather than assuming that one spelling is always better. Optional fields still need a policy for missing values, and an intersection requires the fields from both input types. A callback alias can document a repeated function signature without changing how the callback runs. These exercises build small record and transformation helpers. Parsed input stays unknown until you validate it; an interface annotation alone cannot validate JSON at runtime. Keep optional empty strings separate from absent fields when applying defaults.