Discriminated Union

Discriminated Union adalah pola di mana setiap interface dalam union memiliki satu properti pembeda yang sama (misal kind atau status).

👀 Contoh dulu

type Shape = 
  | { kind: "circle"; radius: number }
  | { kind: "square"; side: number };
const c: Shape = { kind: "circle", radius: 7 };
console.log(c.kind);

Hasilnya: circle

💡 Memeriksa shape.kind akan otomatis mempersempit properti yang tersedia.

📝 Sekarang giliranmu

Buat type alias State berbentuk Discriminated Union. State pertama memiliki status: "success" dengan payload data: string, sedangkan state kedua memiliki status: "error" dengan pesan message: string.

Preview