Bendera keketatan
Aktifkan keketatan untuk kode yang lebih aman: strict, noImplicitAny, exactOptionalPropertyTypes, noUncheckedIndexedAccess.
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.
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
- Bendera keketatan
- Pengaturan target, lib, module, JSX
- Referensi Proyek (pengantar)