Fonksiyon sınırları boyunca birleşimleri iyileştirme
Ayırt edici birleşimler, koşul dönüşleri ve Result tarzı türlerle güvenli daraltmayı fonksiyon sınırları boyunca koruyun.
Fonksiyon sınırları boyunca birleşimleri iyileştirme, 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ş
Hedef: etiketli birleşimler, yüklem dönüşleri ve doğrulama yardımcıları kullanarak işlev çağrıları arasında daraltmayı koruyun.
- Çağrı noktalarında güvenli olmayan sıfır
as - İyileştirmeler verilerle birlikte taşınır
Etiketli birleşim sonucu
Result deseni: çağıran, ok denetimiyle daraltma yapar. Dönüştürme yoktur, denetim akışı açıktır.
type Ok<T> = { ok: true; value: T }
type Err = { ok: false; error: string }
type Result<T> = Ok<T> | Err
function parseIntSafe(s: string): Result<number> {
const n = Number(s)
return Number.isFinite(n) ? { ok: true, value: n } : { ok: false, error: "NaN" }
}
function useIt(s: string) {
const r = parseIntSafe(s)
if (r.ok) {
// r is Ok<number>
return r.value * 2
}
// r is Err
return `bad: ${r.error}`
}Yüklem sonucu
Yüklem dönüşleri (x is T), denetimleri merkezileştirir ve iyileştirmenin çağrı noktalarında korunmasını sağlar.
type User = { id: number; name: string }
type MaybeUser = User | null
function hasUser(x: MaybeUser): x is User {
return x !== null
}
function greet(x: MaybeUser) {
if (hasUser(x)) {
// x narrowed to User
return `Hello ${x.name}`
}
return "Anonymous"
}Daraltmayı iletme
Bir koruyucuyla (örneğin isCircle) daraltma yapın, ardından değeri ileri aktarın; sonraki işlevler daha dar türü görür.
type Shape =
| { kind: "circle"; radius: number }
| { kind: "square"; size: number }
function isCircle(s: Shape): s is Extract<Shape, { kind: "circle" }> {
return s.kind === "circle"
}
function area(s: Shape) {
if (isCircle(s)) {
// s is circle here
return Math.PI * s.radius * s.radius
}
return s.size * s.size
}Sınırda doğrulama
Sınırda doğrulama yapın ve Valid/Invalid döndürün; çağıranlar etikete göre daraltma yaparak tamamen tür bilgili veriler elde eder.
type Payload = { email: string; retries?: number }
type Valid = { ok: true; data: Required<Payload> }
type Invalid = { ok: false; issues: string[] }
type Validation = Valid | Invalid
function validate(p: unknown): Validation {
const issues: string[] = []
if (typeof p !== "object" || p === null) return { ok: false, issues: ["not an object"] }
const x = p as any
if (typeof x.email !== "string") issues.push("email:string")
if (x.retries !== undefined && typeof x.retries !== "number") issues.push("retries:number")
if (issues.length) return { ok: false, issues }
return { ok: true, data: { email: x.email, retries: x.retries ?? 0 } }
}
function handle(p: unknown) {
const v = validate(p)
if (!v.ok) return `bad: ${v.issues.join(",")}`
// v.data is fully typed here
return `send to ${v.data.email} (${v.data.retries})`
}İpuçları
En iyi uygulamalar:
- Küçük ve kararlı etiketleri (ok, kind) tercih edin
- Denetimleri yüklem yardımcılarında merkezileştirin
- Çağrı noktalarında eksiksiz switch ifadeleri kullanın
anyve güvenli olmayan dönüştürmelerden kaçının
Sınırlar arası daraltma
Hızlı denetim: İşlev sınırları arasında daraltmayı en iyi hangi kalıp korur?
Özet
Özet: İyileştirmeleri veri olarak taşıyın (Result), sınırlarda doğrulama yapın ve güvenli olmayan dönüştürmelerden kaçının; çağıranlar basit etiket denetimleriyle daraltma yapar.
Sıkça Sorulan Sorular
“Fonksiyon sınırları boyunca birleşimleri iyileştirme” dersi ücretsiz mi?
Evet — “Fonksiyon sınırları boyunca birleşimleri iyileştirme” 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.
“Fonksiyon sınırları boyunca birleşimleri iyileştirme” dersinde ne öğreneceğim?
Ayırt edici birleşimler, koşul dönüşleri ve Result tarzı türlerle güvenli daraltmayı fonksiyon sınırları boyunca koruyun. 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.
“Fonksiyon sınırları boyunca birleşimleri iyileştirme” 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
- Tüm durumları kapsayan switch'ler ve never denetimleri
- Koşul işlevleri ve satisfies işleci
- Fonksiyon sınırları boyunca birleşimleri iyileştirme