0Pricing
TypeScript Academy · Ders

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
  • any ve 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

  1. Tüm durumları kapsayan switch'ler ve never denetimleri
  2. Koşul işlevleri ve satisfies işleci
  3. Fonksiyon sınırları boyunca birleşimleri iyileştirme
← TypeScript Academy Sayfasına Dön