Katılık seçenekleri
Daha güvenli kod için katılığı etkinleştirin: strict, noImplicitAny, exactOptionalPropertyTypes, noUncheckedIndexedAccess.
Katılık seçenekleri, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 3 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, TypeScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. TypeScript Academy kursu toplamda 3 dersten oluşur.
Giriş
Hedef: Temel katılık seçeneklerini etkinleştirin ve anlayın. Bu seçenekler hataları daha erken ortaya çıkarır ve IDE ipuçlarını iyileştirir.
- strict
- noImplicitAny
- exactOptionalPropertyTypes
- noUncheckedIndexedAccess
strict + noImplicitAny
strict, bir denetim grubunu etkinleştirir; noImplicitAny ise varsayılan olarak any türünü alan türsüz parametreleri ve değişkenleri yasaklar.
// 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, yok ile var ama undefined durumlarını birbirinden ayırır; API modelleme için çok kullanışlıdır.
// 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);
}
}Dizin erişimi (dizi)
Dizilerde dizin kullanmak artık T | undefined üretir. Çalışma zamanındaki çökmeleri önlemek için değeri kullanmadan önce denetleyin.
// noUncheckedIndexedAccess: true
const xs: number[] = [1,2,3];
const maybe = xs[5]; // type: number | undefined
if (maybe !== undefined) {
console.log(maybe.toFixed(0));
}Dizin erişimi (eşleme)
Nesnelerin ve Record<K,V> dizin sonuçlarının varlığını kanıtlayana kadar türleri undefined içerir.
// Also affects records/maps
const byId: Record<string, { id: string }> = {};
const item = byId["x"]; // { id: string } | undefined
if (item) {
console.log(item.id);
}strict ön ayarı
strict ile başlayın ve yalnızca gerekirse gevşetin. Bu seçenekler, yeni kodda çok az gürültü oluşturarak yaygın hataları önler.
// tsconfig.json (excerpt)
{
"compilerOptions": {
"strict": true,
"noImplicitAny": true,
"exactOptionalPropertyTypes": true,
"noUncheckedIndexedAccess": true
}
}Dizin erişimi kontrolü
Hızlı kontrol: noUncheckedIndexedAccess neyi değiştirir?
Özet
Özet: strict daha güvenli varsayılanları etkinleştirir; noImplicitAny eksik türleri bulur; exactOptionalPropertyTypes isteğe bağlı alanları kesin biçimde modeller; noUncheckedIndexedAccess varlık denetimlerini zorunlu kılar.
Sıkça Sorulan Sorular
“Katılık seçenekleri” dersi ücretsiz mi?
Evet — “Katılık seçenekleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve TypeScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. TypeScript Academy kursu toplamda 3 dersten oluşur.
“Katılık seçenekleri” dersinde ne öğreneceğim?
Daha güvenli kod için katılığı etkinleştirin: strict, noImplicitAny, exactOptionalPropertyTypes, noUncheckedIndexedAccess. TypeScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
TypeScript Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te TypeScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 1. dersidir.
“Katılık seçenekleri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu TypeScript Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her TypeScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Katılık seçenekleri
- Target, lib, module ve JSX ayarları
- Proje Referansları (giriş)