0Pricing
TypeScript Academy · Pelajaran

Kata Kunci as untuk Pernyataan Jenis

Timpa jenis hasil inferensi secara sengaja dengan as.

Kata Kunci as untuk Pernyataan Jenis adalah pelajaran TypeScript Academy gratis di CoddyKit. Ini adalah pelajaran 1 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 Pernyataan Tipe?

Pernyataan tipe memberi tahu kompiler, “percayalah, saya tahu nilai ini bertipe T”. Anda menggunakan kata kunci as: value as Type. Pernyataan ini mengubah cara pemeriksa tipe melihat nilai tersebut, bukan nilainya sendiri.

const raw: unknown = 'hello world';
const text = raw as string;
console.log(text.toUpperCase());

Sintaks Pernyataan Tipe

Tulislah ekspresinya, lalu as, kemudian tipe tujuan. Ada juga sintaks kurung sudut yang lebih lama, tetapi as lebih disukai karena berfungsi di mana saja, termasuk dalam berkas JSX/TSX.

const value: unknown = 42;
const n = value as number;
console.log(n + 8);

Pernyataan Tipe Tidak Mengubah Waktu Berjalan

Ini penting: pernyataan tipe adalah instruksi yang hanya berlaku saat kompilasi. Pernyataan tersebut dihapus ketika kode dijalankan. Tidak ada konversi atau validasi yang terjadi—jika pernyataan Anda keliru, nilai saat berjalan tetap tidak berubah dan dapat berperilaku tidak semestinya.

const v: unknown = 'not a number';
const n = v as number; // compiles, but v is still a string
console.log(typeof n); // 'string' at runtime!

Kapan Pernyataan Tipe Valid

TypeScript hanya mengizinkan pernyataan langsung antara tipe yang saling tumpang tindih—ketika salah satunya dapat ditetapkan ke yang lain. Anda dapat menyatakan unknown sebagai string, atau memperlebar atau mempersempit tipe dalam hubungan yang sesuai.

const u: unknown = 'ok';
const s = u as string; // valid: unknown overlaps everything
const broad = s as string | number; // valid widening
console.log(s, broad);

Pernyataan Langsung yang Tidak Valid

Jika dua tipe tidak memiliki kesamaan, TypeScript menolak pernyataan langsung karena kemungkinan merupakan kesalahan. Misalnya, menyatakan string langsung sebagai number akan ditolak.

const s = 'hello';
// const n = s as number; // Error: neither type sufficiently overlaps
console.log('Direct unrelated assertions are blocked');

Menyempitkan Gabungan dengan Pernyataan Tipe

Salah satu penggunaan valid yang umum adalah menyatakan nilai gabungan sebagai salah satu anggotanya ketika Anda memiliki pengetahuan yang tidak dimiliki kompiler. Gunakan dengan hemat—pemeriksaan saat berjalan biasanya lebih aman.

type Shape = { kind: 'circle'; r: number } | { kind: 'square'; s: number };
const data: Shape = { kind: 'circle', r: 5 };
const circle = data as { kind: 'circle'; r: number };
console.log(circle.r);

Menyatakan Tipe Elemen DOM

Salah satu penggunaan nyata yang klasik: kueri DOM mengembalikan tipe umum seperti HTMLElement | null. Jika Anda mengetahui elemen tertentu yang dikembalikan, nyatakan tipenya agar dapat mengakses properti khusus elemen tersebut.

// document.getElementById returns HTMLElement | null
// const input = document.getElementById('email') as HTMLInputElement;
// console.log(input.value);
console.log('Assert HTMLElement to HTMLInputElement for .value');

Alasan Pernyataan DOM Diperlukan

API DOM tidak dapat mengetahui elemen konkret yang akan Anda dapatkan, sehingga API tersebut mengembalikan tipe umum. Menyatakan subtipe tertentu, misalnya HTMLInputElement, membuka akses ke properti seperti value atau checked.

// const canvas = document.querySelector('#c') as HTMLCanvasElement;
// const ctx = canvas.getContext('2d');
console.log('querySelector returns Element | null; assert to specialize');

Pernyataan Nilai Konstan Adalah Kasus Khusus

Anda telah melihat as const. Ini adalah pernyataan khusus yang membuat nilai menjadi hanya-baca secara mendalam dengan tipe harfiah. Inilah satu-satunya pernyataan yang selalu aman karena hanya melakukan penyempitan.

const tuple = [1, 2, 3] as const;
// type: readonly [1, 2, 3]
console.log(tuple.length);

Pernyataan Tipe Melewati Keamanan

Karena pernyataan tipe memberi tahu kompiler untuk berhenti memeriksa, pernyataan tersebut mengalihkan tanggung jawab kepada Anda. Pernyataan yang keliru dapat menyembunyikan kesalahan tipe nyata hingga program berhenti karena kesalahan saat berjalan. Gunakan hanya ketika Anda benar-benar mengetahui lebih banyak daripada kompiler.

const data: unknown = { id: 1 };
const user = data as { id: number; name: string };
// name does not exist at runtime
console.log(user.name); // undefined, no compile error

Utamakan Penyempitan daripada Pernyataan Tipe

Sebisa mungkin, utamakan penyempitan saat berjalan menggunakan penjaga tipe daripada pernyataan tipe. Penyempitan membuktikan tipe tersebut; pernyataan tipe hanya mengklaimnya. Simpan as untuk kasus yang tidak dapat dinyatakan melalui penyempitan, seperti pengkhususan elemen DOM.

function safe(v: unknown): number {
  if (typeof v === 'number') return v; // proven
  return 0;
}
console.log(safe(10), safe('x'));

Pemeriksaan Singkat

Ujilah pemahaman Anda tentang pernyataan tipe.

Rangkuman: Pernyataan Tipe

Anda telah mempelajari bahwa:

  • value as Type memberi tahu kompiler untuk memperlakukan suatu nilai sebagai tipe tertentu.
  • Pernyataan tipe hanya berlaku saat kompilasi—tidak ada konversi atau pemeriksaan saat berjalan.
  • Pernyataan tersebut hanya diizinkan antara tipe yang saling tumpang tindih.
  • Penggunaan valid yang umum: menyempitkan unknown dan mengkhususkan tipe elemen DOM. Utamakan penyempitan jika memungkinkan.

Selanjutnya, operator pernyataan bukan null.

const raw: unknown = 'data';
const s = raw as string;
console.log(s.length);

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Kata Kunci as untuk Pernyataan Jenis” gratis?

Ya — teks lengkap “Kata Kunci as untuk Pernyataan Jenis” 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 “Kata Kunci as untuk Pernyataan Jenis”?

Timpa jenis hasil inferensi secara sengaja dengan as. 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 1 dari 4.

Berapa lama pelajaran “Kata Kunci as untuk Pernyataan Jenis” 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. Kata Kunci as untuk Pernyataan Jenis
  2. Operator Pernyataan Non-null
  3. Pernyataan Ganda dan Risikonya
  4. Pernyataan versus Pengawal Jenis
← Kembali ke TypeScript Academy