TypeScript Academy · Pelajaran

null, undefined dan Semakan Null Ketat

Kendalikan null dan undefined dengan selamat menggunakan mod ketat.

Pelajaran 4 daripada 413 langkah

null, undefined dan Semakan Null Ketat ialah pelajaran TypeScript Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran TypeScript Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus TypeScript Academy merangkumi sejumlah 4 pelajaran.

Selamat Datang

Dalam JavaScript, null dan undefined merupakan punca biasa ralat semasa pelaksanaan. Pemeriksaan null ketat TypeScript memaksa anda mengendalikannya secara jelas.

null berbanding undefined

`undefined` bermaksud pemboleh ubah telah diisytiharkan tetapi belum diberikan nilai. `null` ialah ketiadaan nilai yang disengajakan. Kedua-duanya merupakan jenis yang berasingan dalam TypeScript.
let a: undefined = undefined;
let b: null = null;

Tanpa Pemeriksaan Null Ketat

Tanpa `strictNullChecks`, null dan undefined ialah subjenis bagi setiap jenis. Ini ialah lalai dalam TypeScript versi lama dan secara umumnya tidak selamat.
// strictNullChecks: false (unsafe default)
let name: string = null; // allowed — dangerous!

Mengaktifkan Pemeriksaan Null Ketat

Dengan `strictNullChecks: true` (termasuk dalam `strict`), null dan undefined hanya boleh ditetapkan kepada jenis masing-masing atau jenis kesatuan yang dinyatakan secara jelas.
// strictNullChecks: true
let name: string = null; // Error!
let maybeName: string | null = null; // OK

Sifat Pilihan

Sifat objek yang ditandai dengan `?` secara tersirat ialah `T | undefined`. Anda mesti mengendalikan keadaan apabila sifat tersebut tiada.
interface Config {
  host: string;
  port?: number; // number | undefined
}

const c: Config = { host: 'localhost' };
console.log(c.port?.toString()); // optional chaining

Mengecilkan Jenis yang Boleh Bernilai Null

Gunakan pemeriksaan if untuk mengecilkan kesatuan yang mengandungi null atau undefined sebelum mengakses sifat.
function greet(name: string | null): string {
  if (name === null) return 'Guest';
  return 'Hello, ' + name;
}

Rantaian Pilihan (?.)

Pengendali `?.` berhenti seketika dan mengembalikan `undefined` jika bahagian kiri bernilai null atau undefined, sekali gus mengelakkan ranap semasa pelaksanaan.
const user = getUser();
const city = user?.address?.city; // undefined if any step is null

Penggabungan Nilai Kosong (??)

Pengendali `??` mengembalikan bahagian kanan hanya apabila bahagian kiri bernilai null atau undefined — tidak seperti `||` yang tercetus bagi apa-apa nilai palsu.
const port = config.port ?? 3000; // 3000 if port is null/undefined
const label = name ?? 'Anonymous';

Pengendali Penegasan Bukan Null (!)

Pengendali postfix `!` memberitahu TypeScript bahawa anda benar-benar pasti sesuatu nilai bukan null atau undefined. Gunakannya hanya apabila anda benar-benar yakin.
const el = document.getElementById('root')!;
el.textContent = 'Loaded'; // no null check needed

Mengembalikan null berbanding undefined

Utamakan pengembalian `null` untuk menunjukkan hasil kosong yang disengajakan dan `undefined` untuk nilai yang tiada atau pilihan. Kekalkan konsistensi dalam pangkalan kod anda.
function findUser(id: number): User | null {
  return db.find(u => u.id === id) ?? null;
}

strictNullChecks Menghalang Kesilapan Bernilai Bilion Dolar

Tony Hoare menggelar null sebagai 'kesilapan bernilai bilion dolar'. strictNullChecks TypeScript menghalang ranap akibat null atau undefined dengan memaksa anda mengendalikan nilai ini secara jelas.

Semakan Pantas

Apakah yang dikembalikan oleh pengendali `??` (penggabungan nilai kosong) pada bahagian kanannya?

Rumusan

Aktifkan strictNullChecks untuk menghalang pepijat null atau undefined. Gunakan jenis kesatuan untuk membenarkan nilai yang boleh bernilai null, rantaian pilihan (?.) untuk menavigasi dengan selamat dan penggabungan nilai kosong (??) untuk menyediakan nilai lalai.
Percuma untuk bermula

Pelajari TypeScript dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
101
Pelajaran
352

Soalan Lazim

Adakah pelajaran “null, undefined dan Semakan Null Ketat” percuma?

Ya — teks penuh “null, undefined dan Semakan Null Ketat” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus TypeScript Academy, tingkat taraf kepada CoddyKit PRO. Kursus TypeScript Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “null, undefined dan Semakan Null Ketat”?

Kendalikan null dan undefined dengan selamat menggunakan mod ketat. Anda berlatih TypeScript Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan TypeScript Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran TypeScript Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “null, undefined dan Semakan Null Ketat” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran TypeScript Academy ini?

Ya. Setiap pelajaran TypeScript Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Jenis Primitif: string, number, boolean
  2. Jenis any dan Sebab Mengelakkannya
  3. unknown berbanding any: Pilihan Lebih Selamat
  4. null, undefined dan Semakan Null Ketat
← Kembali ke TypeScript Academy