never ile tüm durumları kapsama (giriş)
Birleşimler üzerindeki tüm durumları kapsayan switch ifadelerini zorunlu kılmak ve eksik durumları erkenden yakalamak için never kullanın.
never ile tüm durumları kapsama (giriş), CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 3 dersinin 3. 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ş
Amaç: switch ifadenizin bir birleşimin tüm üyelerini ele aldığından emin olun. never türü, yeni bir durum eksik olduğunda derleyicinin sizi uyarmasına yardımcı olur.
Birleşim kurulumu
Daha sonra üzerinde geçiş yapmak için sabit bir etiketle (örneğin kind) bir ayırt edici birleşim oluşturun.
type Circle = { kind: "circle"; radius: number };
type Square = { kind: "square"; size: number };
type Shape = Circle | Square;Eksiksiz olmayan switch
Eksik bir dal derlenir; ancak mantık tamamlanmamıştır. Bir durum eksik olduğunda derleme zamanında başarısızlığı zorlayacak bir yönteme ihtiyacımız vardır.
function areaBad(s: Shape): number {
switch (s.kind) {
case "circle":
return Math.PI * s.radius ** 2;
// OOPS: forgot "square" -> no compile error yet
}
return 0; // silently wrong
}
console.log(areaBad({ kind: "circle", radius: 2 }));assertNever yardımcısı
assertNever tanımlayın: yalnızca never kabul eder. Bir değer kendisine ulaşırsa switch eksiksiz değildir ve derleyici bunu bildirir.
function assertNever(x: never): never {
throw new Error("Unhandled case: " + JSON.stringify(x));
}Eksiksiz switch
assertNever çağıran bir default ekleyin. Yeni bir birleşim üyesi ortaya çıktığında derleyici sizi bunu ele almaya zorlar.
function area(s: Shape): number {
switch (s.kind) {
case "circle":
return Math.PI * s.radius ** 2;
case "square":
return s.size * s.size;
default:
return assertNever(s); // compiler error if a member is unhandled
}
}
console.log(area({ kind: "square", size: 3 }));Yönergeler
Yönergeler:
- Birleşim üyelerinde
kindgibi bir ayırt edici kullanın. - default + assertNever düzenini koruyun.
- Eksik durumların belirgin olması için açık dönüş türlerini tercih edin.
Eksiksizlik kontrolü
Hızlı kontrol: Ayırt edici birleşim üzerinde bir switch'i nasıl eksiksiz hâle getirirsiniz?
Özet
Özet: never imkânsız bir değeri belirtir. Eksiksiz ve geleceğe dayanıklı switch ifadelerini zorlamak için varsayılan dalda assertNever kullanın.
Sıkça Sorulan Sorular
“never ile tüm durumları kapsama (giriş)” dersi ücretsiz mi?
Evet — “never ile tüm durumları kapsama (giriş)” 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.
“never ile tüm durumları kapsama (giriş)” dersinde ne öğreneceğim?
Birleşimler üzerindeki tüm durumları kapsayan switch ifadelerini zorunlu kılmak ve eksik durumları erkenden yakalamak için never kullanın. 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 3. dersidir.
“never ile tüm durumları kapsama (giriş)” 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
- typeof, eşitlik ve doğruluk daraltması
- in, instanceof ve ayırt edici birleşimler
- never ile tüm durumları kapsama (giriş)