Built-ins transform types: Partial<T>, Pick<T, Keys>, Omit<T, Keys>, Record<K, V>.
Everyday combinations
Partial<Pick<User, 'name' | 'email'>>for PATCH payloadsRecord<Role, string[]>for permission mapsOmit<User, 'passwordHash'>for public DTOs
More built-ins
Required<T> and Readonly<T> flip optionality and mutability for every property—handy when adapting DTOs between layers without rewriting interfaces by hand.
Self-check
- Build a type for “create user” that omits
idfromUser.
Utility types are pure type-level—they disappear in emitted JavaScript, so there is zero runtime cost.
Practice: Apply utility-types-intro in the playground, then explain utility types intro in one sentence without looking at notes.