0 of 6 problems solved0%
3 of 6

Object Shape Alias

Aliases also work well for object shapes. Optional properties are effectively T | undefined, and readonly communicates intent not to reassign.

Readonly Example

type User = {
  readonly id: number;
  name: string;
};

const alice: User = { id: 1, name: "Alice" };

alice.name = "Alicia"; // ✅ OK, not readonly
alice.id = 2; // ❌ Error:

Your Task

  1. Define type Person = { readonly id: number; name: string; nickname?: string }.
  2. Implement display(p: Person): string returning:
  • "<name> (<nickname>)" if nickname exists
  • otherwise "<name>".