TypeScript Academy · Pelajaran

Bendera keketatan

Aktifkan keketatan untuk kode yang lebih aman: strict, noImplicitAny, exactOptionalPropertyTypes, noUncheckedIndexedAccess.

Pelajaran 1 dari 38 langkah

Bendera keketatan 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: Aktifkan dan pahami opsi inti terkait keketatan. Opsi ini mendeteksi kesalahan lebih awal dan meningkatkan petunjuk di IDE.

  • strict
  • noImplicitAny
  • exactOptionalPropertyTypes
  • noUncheckedIndexedAccess

strict + noImplicitAny

strict mengaktifkan sekumpulan pemeriksaan; noImplicitAny melarang parameter/variabel tanpa tipe yang secara bawaan menjadi any.

// tsconfig.json (excerpt)
{
  "compilerOptions": {
    "strict": true,
    "noImplicitAny": true
  }
}

// Effect demo
function sum(a, b) { // Error: implicit any
  return a + b;
}

function sumOk(a: number, b: number): number {
  return a + b;
}

exactOptionalPropertyTypes

exactOptionalPropertyTypes membedakan properti yang tidak ada dari properti yang ada tetapi bernilai undefined—sangat berguna untuk memodelkan API.

// exactOptionalPropertyTypes: true
interface User { name?: string }

const u1: User = {};          // ok: name is absent
const u2: User = { name: undefined }; // Error when exactOptionalPropertyTypes is true

function greet(u: User) {
  if ("name" in u) {
    // name exists but could be undefined without this flag
    console.log("Hi", u.name);
  }
}

Akses terindeks (larik)

Pengindeksan larik sekarang menghasilkan T | undefined. Periksa nilainya sebelum digunakan agar tidak terjadi kerusakan saat dijalankan.

// noUncheckedIndexedAccess: true
const xs: number[] = [1,2,3];
const maybe = xs[5]; // type: number | undefined
if (maybe !== undefined) {
  console.log(maybe.toFixed(0));
}

Akses terindeks (peta)

Hasil pengindeksan objek dan Record<K,V> mencakup undefined sampai Anda membuktikan keberadaannya.

// Also affects records/maps
const byId: Record<string, { id: string }> = {};
const item = byId["x"]; // { id: string } | undefined
if (item) {
  console.log(item.id);
}

Prasetel strict

Mulailah dengan strict dan longgarkan hanya jika diperlukan. Opsi ini mencegah bug umum dengan gangguan minimal pada kode baru.

// tsconfig.json (excerpt)
{
  "compilerOptions": {
    "strict": true,
    "noImplicitAny": true,
    "exactOptionalPropertyTypes": true,
    "noUncheckedIndexedAccess": true
  }
}

Pemeriksaan akses terindeks

Pemeriksaan singkat: Apa yang diubah oleh noUncheckedIndexedAccess?

Rangkuman

Rangkuman: strict mengaktifkan bawaan yang lebih aman; noImplicitAny menemukan tipe yang hilang; exactOptionalPropertyTypes memodelkan bidang opsional dengan tepat; noUncheckedIndexedAccess memaksa pemeriksaan keberadaan.

Gratis untuk memulai

Belajar TypeScript dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
101
Pelajaran
352

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Bendera keketatan” gratis?

Ya — teks lengkap “Bendera keketatan” 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 “Bendera keketatan”?

Aktifkan keketatan untuk kode yang lebih aman: strict, noImplicitAny, exactOptionalPropertyTypes, noUncheckedIndexedAccess. 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 “Bendera keketatan” 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. Bendera keketatan
  2. Pengaturan target, lib, module, JSX
  3. Referensi Proyek (pengantar)
← Kembali ke TypeScript Academy