0Pricing
TypeScript Academy · Pelajaran

Penyempitan dengan typeof dan Kebenaran

Gunakan pemeriksaan typeof untuk mempersempit tipe primitif.

Penyempitan dengan typeof dan Kebenaran 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.

Selamat Datang

TypeScript menyempitkan tipe gabungan di dalam blok kondisional. Pemeriksaan `typeof` dan pemeriksaan kebenaran nilai merupakan teknik penyempitan yang paling umum.

Penyempitan dengan typeof

Gunakan `typeof` untuk memeriksa tipe primitif. TypeScript memahami pemeriksaan typeof dan menyempitkan tipe di dalam blok tersebut.
function process(val: string | number) {
  if (typeof val === 'string') {
    return val.toUpperCase(); // val: string
  }
  return val.toFixed(2); // val: number
}

Nilai yang Dikembalikan typeof

typeof mengembalikan 'string', 'number', 'boolean', 'bigint', 'symbol', 'undefined', 'object', atau 'function'. Catatan: typeof null === 'object'—sebuah keanehan JavaScript.
typeof 'hello'    // 'string'
typeof 42         // 'number'
typeof true       // 'boolean'
typeof null       // 'object' (quirk!)
typeof undefined  // 'undefined'

Penyempitan Berdasarkan Kebenaran Nilai

Nilai JavaScript dapat dianggap benar atau salah. TypeScript menyempitkan `T | null | undefined` menjadi `T` di dalam pemeriksaan kebenaran nilai.
function greet(name: string | null) {
  if (name) {
    console.log('Hello, ' + name); // name: string
  } else {
    console.log('Hello, stranger');
  }
}

Nilai yang Dianggap Salah

Nilai yang dianggap salah dalam JavaScript: false, 0, '', null, undefined, 0n, NaN. Penyempitan berdasarkan kebenaran nilai menghapus nilai-nilai tersebut dari tipe ketika pemeriksaan berhasil.

Penyempitan dengan Konversi Boolean

Penggunaan `Boolean(val)` atau `!!val` juga menyempitkan tipe dengan menghapus null dan undefined.
const items: (string | null)[] = ['a', null, 'b', null];
const strings = items.filter((x): x is string => x !== null);

Kondisi Negasi

TypeScript juga melakukan penyempitan pada cabang else dan setelah pengembalian awal.
function getLength(val: string | null): number {
  if (!val) return 0; // early return narrows
  return val.length;  // val: string here
}

Menggabungkan typeof dengan Kesetaraan

Kesetaraan ketat (===) yang digabungkan dengan typeof menghasilkan penyempitan yang lebih tepat.
function accept(x: string | number | boolean) {
  if (typeof x === 'string' || typeof x === 'number') {
    console.log(x); // x: string | number
  }
}

typeof Tidak Dapat Menyempitkan Menjadi null

Untuk menyempitkan null, gunakan kesetaraan ketat `=== null`. Kebenaran nilai tidak dapat membedakan null dari nilai lain yang dianggap salah.
function check(x: string | null | 0) {
  if (x === null) { /* x: null */ }
  else if (x === 0) { /* x: 0 */ }
  else { /* x: string */ }
}

Penyempitan dalam Perulangan

TypeScript juga menerapkan penyempitan di dalam badan perulangan, bukan hanya dalam pernyataan if.

Analisis Alur Kontrol

TypeScript melacak tipe pada setiap titik dalam kode Anda menggunakan analisis alur kontrol. Penugasan juga memperbarui tipe.
let x: string | number = 'hello';
// x: string
x = 42;
// x: number

Pemeriksaan Cepat

Di dalam `if (typeof val === 'string')`, apa tipe `val` jika diasumsikan sebelumnya bertipe `string | number`?

Ringkasan

Pemeriksaan typeof dan kondisi kebenaran nilai menyempitkan tipe gabungan dalam TypeScript. TypeScript menggunakan analisis alur kontrol untuk melacak tipe pada setiap titik. Gunakan kesetaraan ketat untuk pemeriksaan null/undefined.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Penyempitan dengan typeof dan Kebenaran” gratis?

Ya — teks lengkap “Penyempitan dengan typeof dan Kebenaran” 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 “Penyempitan dengan typeof dan Kebenaran”?

Gunakan pemeriksaan typeof untuk mempersempit tipe primitif. 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 “Penyempitan dengan typeof dan Kebenaran” 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. Penyempitan dengan typeof dan Kebenaran
  2. Penyempitan dengan instanceof dan in
  3. Fungsi Penjaga Tipe Buatan Pengguna
  4. Pemeriksaan Kelengkapan dengan never
← Kembali ke TypeScript Academy