Creating Mapped Types

Creating Mapped Types
πŸ‘¨β€πŸ’Ό Let's build our own utility types using mapped types!
type Album = {
	title: string
	year: number
}

type Optional<T> = { [K in keyof T]?: T[K] }
type OptionalAlbum = Optional<Album>
🐨 Open
index.ts
and create:
  1. MyPartial<T> β€” every property optional
  2. MyRequired<T> β€” every property required (optional markers removed)
  3. Nullable<T> β€” every property becomes Original | null
  4. Mutable<T> β€” every readonly property becomes writable
  5. Stringify<T> β€” every property becomes string
Then create and export these fixtures:
  • partial: { name: 'Alice' }
  • nullable: { id: null, name: 'Bob', email: null, age: 30 }
  • mutable: a full writable user object where mutable.name = 'Updated' type-checks

Please set the playground first

Loading "Creating Mapped Types"
Loading "Creating Mapped Types"