0Pricing
TypeScript Academy · Pelajaran

Assertion const dan as const

Gunakan as const untuk menyimpulkan tipe literal dan tuple dengan tepat.

Assertion const dan as const adalah pelajaran TypeScript Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar TypeScript Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus TypeScript Academy mencakup 4 pelajaran total.

Apa Itu as const?

as const adalah asersi tipe yang memberi tahu TypeScript untuk menyimpulkan tipe literal paling spesifik yang memungkinkan bagi suatu ekspresi dan menjadikan semua propertinya readonly.

const colors = ["red", "green", "blue"] as const;
// type: readonly ["red", "green", "blue"]

Mencegah Pelebaran dengan as const

Tanpa as const, nilai string dalam array dan objek diperlebar menjadi string. Dengan menggunakannya, nilai tersebut tetap menjadi tipe literalnya.

const dir1 = { direction: "left" };
// dir1.direction: string

const dir2 = { direction: "left" } as const;
// dir2.direction: "left"

as const pada Literal Objek

Setiap properti objek dengan as const menjadi readonly dan mempertahankan tipe literalnya secara rekursif.

const theme = {
  color: "dark",
  sizes: { sm: 8, md: 16 },
} as const;
// theme.color: "dark", theme.sizes.sm: 8 (all readonly)

as const untuk Tipe Tuple

Array dengan as const menjadi tuple readonly dengan tipe elemen literal — berguna untuk menentukan daftar argumen tetap.

const args = [1, "hello", true] as const;
// type: readonly [1, "hello", true]

Menurunkan Tipe Gabungan dari as const

Pola yang umum: tentukan array nilai dengan as const, lalu turunkan tipe gabungan darinya menggunakan typeof dan akses terindeks.

const STATUSES = ["pending", "active", "done"] as const;
type Status = typeof STATUSES[number];
// type Status = "pending" | "active" | "done"

as const dalam Argumen Fungsi

Anda dapat menggunakan as const secara langsung saat memanggil fungsi untuk mempertahankan tipe literal melewati batas pemanggilan.

function setMode(mode: "dark" | "light") {}
setMode("dark" as const); // safe, preserves literal

Rekursi Readonly

as const menerapkan Readonly secara rekursif. Objek dan array bertingkat semuanya menjadi readonly sehingga mutasi mendalam dapat dicegah.

const config = { db: { host: "localhost", port: 5432 } } as const;
// config.db.port = 5433; // Error: readonly

as const vs Object.freeze

as const adalah asersi pada waktu kompilasi — tidak memberikan perlindungan saat dijalankan. Object.freeze berlaku saat dijalankan. Keduanya memiliki peran yang saling melengkapi.

const obj = Object.freeze({ x: 1 }); // runtime immutability
const obj2 = { x: 1 } as const;      // compile-time literal types

Aser const vs Anotasi Tipe

Anotasi tipe memperlebar tipe: const x: string = "hi" menghasilkan tipe string. as const mempersempitnya: const x = "hi" as const menghasilkan "hi".

const a: string = "hi"; // type: string
const b = "hi" as const; // type: "hi"

Penggunaan Praktis: Objek Mirip Enumerasi

Banyak basis kode menggunakan objek as const sebagai alternatif untuk enumerasi, sehingga terhindar dari masalah enumerasi sekaligus tetap mempertahankan keamanan tipe.

const Direction = { Up: "UP", Down: "DOWN" } as const;
type Direction = typeof Direction[keyof typeof Direction];
// "UP" | "DOWN"

Rangkuman: as const

as const membuat TypeScript menyimpulkan tipe literal dan memperlakukan semua properti sebagai hanya-baca. Fitur ini penting untuk menurunkan tipe gabungan yang presisi dari array serta membangun objek konfigurasi yang aman.

Pemeriksaan Cepat

Apa yang dilakukan as const terhadap array?

Yang Anda Pelajari

as const adalah alat yang ampuh untuk menetapkan tipe literal, membuat struktur hanya-baca, dan menurunkan tipe gabungan yang presisi dari array. Fitur ini merupakan dasar penting pola TypeScript tingkat lanjut.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Assertion const dan as const” gratis?

Ya — teks lengkap “Assertion const dan as const” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus TypeScript Academy, upgrade ke CoddyKit PRO. Kursus TypeScript Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Assertion const dan as const”?

Gunakan as const untuk menyimpulkan tipe literal dan tuple dengan tepat. Kamu berlatih TypeScript Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai TypeScript Academy?

Tidak diperlukan pengalaman sebelumnya. TypeScript Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Assertion const dan as const” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran TypeScript Academy ini?

Ya. Setiap pelajaran TypeScript Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Mekanisme Pelebaran dan Penyempitan Tipe
  2. Penentuan Tipe Kontekstual: Inferensi dari Konteks
  3. Pemeriksaan Properti Berlebih dan Kebaruan
  4. Assertion const dan as const
← Kembali ke TypeScript Academy