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 errorUtamakan 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 Typememberi 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
unknowndan 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
- Kata Kunci as untuk Pernyataan Jenis
- Operator Pernyataan Non-null
- Pernyataan Ganda dan Risikonya
- Pernyataan versus Pengawal Jenis