Onaylama işlevleri ve kullanıcı tanımlı tür koruyucuları
Bilinmeyen veya birleşim değerlerini güvenle daraltmak için onaylama işlevleri (asserts x is T) ve kullanıcı tanımlı tür koruyucuları (x is T) yazın.
Onaylama işlevleri ve kullanıcı tanımlı tür koruyucuları, 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ç: Güvenli API'ler için çalışma zamanı denetimlerini doğrulama işlevleri ve kullanıcı tanımlı tür korumaları ile tür iyileştirmelerine dönüştürün.
Doğrulama işlevi
Bir doğrulama işlevi, dönerse sonraki kod için türleri daraltır; aksi halde hata fırlatmalıdır.
function assertIsString(x: unknown): asserts x is string {
if (typeof x !== "string") {
throw new Error("Expected string");
}
}
let v: unknown = Math.random() > 0.5 ? "ok" : 42;
assertIsString(v); // after this, v is string
console.log(v.toUpperCase());Tür koruma işlevi
Bir tür koruması, x is T döndürerek dallanmalarda ve yardımcı işlevlerde akıllı daraltmayı etkinleştirir.
type Circle = { kind: "circle"; radius: number };
type Square = { kind: "square"; size: number };
type Shape = Circle | Square;
function isCircle(s: Shape): s is Circle {
return s.kind === "circle";
}
function area(s: Shape): number {
if (isCircle(s)) {
return Math.PI * s.radius ** 2; // s is Circle here
}
return s.size * s.size; // s is Square here
}
console.log(area({ kind: "circle", radius: 2 }));filter içinde korumalar
Korumalar, öğe türlerini temiz bir şekilde daraltmak için dizi yöntemlerinde (ör. filter) koşul olarak kullanılabilir.
type Item = { id: number } | null | undefined;
function isPresent<T>(x: T | null | undefined): x is T {
return x != null;
}
const items: Item[] = [{ id: 1 }, null, undefined, { id: 2 }];
const present = items.filter(isPresent);
// present has type { id: number }[]
console.log(present.map(i => i.id));Çalışma zamanı verilerini doğrulama
Bir değerin beklenen türde olmaması durumunda hızlıca başarısız olmak için ayrıştırmayı bir doğrulamayla birleştirin.
function parseJson(s: string): unknown {
return JSON.parse(s);
}
try {
const data = parseJson("{\"name\":\"Ada\"}");
assertIsString(data); // will throw, because data is object
} catch (e) {
console.log("Handled:", e instanceof Error ? e.message : e);
}Yönergeler
Yönergeler:
- Doğrulamalar başarısızlıkta hata fırlatmalıdır.
- Dallanma mantığı için korumaları (
x is T) tercih edin. - API sınırlarında (G/Ç, JSON, DOM) doğrulamalar kullanın.
Doğrulama işlevi kontrolü
Hızlı kontrol: asserts x is string içeren bir doğrulama işlevi neyi garanti eder?
Özet
Özet: Denetimlerden sonra türleri zorunlu kılmak için doğrulama işlevlerini, dalları ve koleksiyonları daraltmak için kullanıcı tanımlı tür korumalarını kullanın.
Sıkça Sorulan Sorular
“Onaylama işlevleri ve kullanıcı tanımlı tür koruyucuları” dersi ücretsiz mi?
Evet — “Onaylama işlevleri ve kullanıcı tanımlı tür koruyucuları” 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.
“Onaylama işlevleri ve kullanıcı tanımlı tür koruyucuları” dersinde ne öğreneceğim?
Bilinmeyen veya birleşim değerlerini güvenle daraltmak için onaylama işlevleri (asserts x is T) ve kullanıcı tanımlı tür koruyucuları (x is T) yazı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.
“Onaylama işlevleri ve kullanıcı tanımlı tür koruyucuları” 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
- Fonksiyon aşırı yüklemeleri ve çağrı imzaları
- this parametresinin türü; void, never
- Onaylama işlevleri ve kullanıcı tanımlı tür koruyucuları