0Pricing
TypeScript Academy · Pelajaran

typeof, kesetaraan, penyempitan berdasarkan kebenaran

Gunakan typeof, kesetaraan ketat, dan kebenaran untuk mempersempit tipe union tanpa cast yang tidak aman.

typeof, kesetaraan, penyempitan berdasarkan kebenaran adalah pelajaran TypeScript Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 3. 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 3 pelajaran total.

Pengantar

Tujuan: Menyempitkan tipe gabungan yang luas menjadi tipe yang tepat menggunakan pemeriksaan tipe, kesetaraan ketat, dan kebenaran nilai. Ini memungkinkan akses properti dan metode dengan aman.

Penyempitan berdasarkan tipe

Pemeriksaan tipe mempersempit tipe primitif, yaitu string, number, boolean, bigint, symbol, dan undefined. Gunakan ini untuk membuat percabangan yang aman.

function printLen(x: string | number) {
  if (typeof x === "string") {
    console.log(x.length); // x is string
  } else {
    console.log(x.toFixed(2)); // x is number
  }
}

printLen("TS");
printLen(3.14);

Kesetaraan ketat

Utamakan ===/!== untuk penyempitan yang tepat; hindari == karena operator tersebut melakukan pemaksaan tipe dan membingungkan manusia maupun kompiler.

function greet(x: string | null) {
  if (x !== null) {
    // x is string here
    console.log("Hello " + x.toUpperCase());
  } else {
    console.log("No name");
  }
}

greet("Ada");
greet(null);

Penyempitan berdasarkan kebenaran nilai

Kebenaran nilai juga dapat mempersempit tipe, tetapi berhati-hatilah: "" dan 0 dianggap salah meskipun merupakan nilai yang valid. Gunakan pemeriksaan ketat jika Anda harus membedakan nilai-nilai tersebut.

function show(v: string | 0 | "" | null | undefined) {
  if (v) {
    // v is string here (non-empty)
    console.log("value:", v);
  } else {
    // v is "", 0, null, or undefined
    console.log("empty");
  }
}

show("ok");
show("");
show(0);

Menggabungkan pemeriksaan

Gabungkan beberapa pemeriksaan untuk melindungi akses bertingkat. Untuk kendali yang lebih terperinci, utamakan u !== null && u !== undefined ketika 0/"" merupakan kasus yang valid.

type MaybeUser = { name: string } | null | undefined;

function hi(u: MaybeUser) {
  if (u && u.name) {
    console.log("Hi " + u.name);
  } else {
    console.log("No user");
  }
}

hi({ name: "Lin" });
hi(null);

Panduan

Panduan:

  • Gunakan pemeriksaan tipe untuk tipe primitif.
  • Gunakan ===/!== untuk menghindari pemaksaan tipe.
  • Kebenaran nilai lebih ringkas; hindari cara ini ketika string kosong atau nol memiliki makna.

Pemeriksaan penyempitan

Pemeriksaan cepat: Pemeriksaan mana yang benar-benar mempersempit suatu nilai menjadi string?

Ringkasan

Ringkasan: Persempit tipe dengan pemeriksaan tipe, kesetaraan ketat, dan kebenaran nilai. Utamakan pemeriksaan eksplisit ketika 0/"" merupakan nilai yang valid.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “typeof, kesetaraan, penyempitan berdasarkan kebenaran” gratis?

Ya — teks lengkap “typeof, kesetaraan, penyempitan berdasarkan 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 3 pelajaran total.

Apa yang akan aku pelajari di “typeof, kesetaraan, penyempitan berdasarkan kebenaran”?

Gunakan typeof, kesetaraan ketat, dan kebenaran untuk mempersempit tipe union tanpa cast yang tidak aman. 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 3.

Berapa lama pelajaran “typeof, kesetaraan, penyempitan berdasarkan 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. typeof, kesetaraan, penyempitan berdasarkan kebenaran
  2. in, instanceof, union terdiskriminasi
  3. Kelengkapan dengan never (pengantar)
← Kembali ke TypeScript Academy