Lompat ke konten utama
←

TypeScript Dasar

Pelajaran 9 dari 16

Union, literal, dan penyempitan

Tipe union dan literal

Setelah pelajaran ini kamu bisa menyusun tipe yang menerima beberapa kemungkinan, termasuk union dari nilai tertentu.

  • ±13 menit
  • 3 latihan
  • Diperiksa 23 Sep 2026

Latihan di pelajaran ini butuh akun gratis. Progres, kode, dan catatanmu hanya tersimpan di browser ini. Masuk untuk menyimpannya

Materi

Tipe union menyatakan bahwa sebuah nilai boleh berupa salah satu dari beberapa tipe, ditulis dengan tanda garis tegak di antaranya. Union juga bisa dibentuk dari nilai tertentu, bukan hanya dari tipe: teks "dikirim" sendiri bisa menjadi sebuah tipe, yang disebut literal type.

type Id = number | string;
type Status = "baru" | "dikirim" | "selesai";

let nomor: Id = 42;
nomor = "INV-2026-0001";

const status: Status = "dikirim";

Union dari nilai tertentu membuat kompiler menolak teks lain, misalnya "batal", dengan pesan Type '"batal"' is not assignable to type 'Status'. Salah ketik tertangkap sebelum kode dijalankan, dan editor bisa menawarkan ketiga pilihan yang sah. Pada nilai bertipe union, hanya operasi yang tersedia di semua anggotanya yang boleh langsung dipakai.

TypeScript juga punya enum, yang menghasilkan objek sungguhan saat program berjalan — satu dari sedikit fitur TypeScript yang bukan sekadar lapisan tipe. Union literal tidak menyisakan kode apa pun setelah anotasi dihapus, dan nilainya tetap berupa teks biasa yang mudah dicocokkan dengan data dari luar program.

enum Gudang {
  Bandung = "BDG",
  Surabaya = "SBY",
}                       // tetap ada saat program berjalan

type KodeGudang = "BDG" | "SBY";   // hilang setelah anotasi dihapus

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Lanjutkan ke

Tampilkan 1 lagi

Sebagian materi kelas ini diadaptasi dari Exercism — jalur TypeScript (MIT).