Start here. This is the direct spoken answer to practice first.
Overview
Derivation is valuable when two contracts truly evolve together. It is dangerous when similar-looking contracts have different rules.
Utility types such as Pick, Omit, Partial, and Readonly derive a type from another contract. Mapped types let me apply a rule across a set of keys. I use them when the relationship is real and improves consistency, but I keep important domain and API contracts explicit when their validation, lifecycle, or meaning differs.