0Pricing
TypeScript Academy · Ders

Koşul işlevleri ve satisfies işleci

Koşul dönüş türleriyle özel tür koruyucuları yazın ve genişletmeden satisfies işleciyle nesneleri doğrulayın.

Koşul işlevleri ve satisfies işleci, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 3 dersinin 2. 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: Türleri daraltan yüklem işlevleri (örneğin value is T) oluşturun ve türleri genişletmeden şekilleri denetlemek için satisfies kullanın.

  • Özel koruyucular = yeniden kullanılabilir çalışma zamanı denetimleri
  • satisfies = değişmez değerleri koruyan derleme zamanı şekil denetimi

Yüklem temelleri

Bir yüklem işlevi x is Type döndürür. Denetimden sonra değişken, o kapsam içinde daraltılır.

function isNumber(x: unknown): x is number {
  return typeof x === "number"
}

function demo(a: unknown) {
  if (isNumber(a)) {
    // inside: a is number
    return a.toFixed(2)
  }
  return "not a number"
}

Şekil koruyucusu

Koruyucu, nesnelerin şeklini denetler; denetim başarılı olursa değer User olarak daraltılır ve güvenle kullanılabilir.

type User = { id: number; name: string }

function isUser(v: unknown): v is User {
  return typeof v === "object" && v !== null &&
    "id" in v && "name" in v &&
    typeof (v as any).id === "number" &&
    typeof (v as any).name === "string"
}

function printUser(u: unknown) {
  if (isUser(u)) {
    console.log(u.name.toUpperCase())
  } else {
    console.log("invalid user")
  }
}

Sınırlar arasında

Koruyucular, işlev sınırları arasında güvenli aktarım sağlar: dışarıda unknown, içeride denetimli User.

function fetchAndPrint(json: string) {
  const value: unknown = JSON.parse(json)
  if (isUser(value)) {
    // value narrowed to User
    console.log(`User #${value.id}: ${value.name}`)
  } else {
    console.log("Bad payload")
  }
}

satisfies (yapılandırma)

satisfies, ifadeyi Confige ile uyumluluk açısından denetler, ancak değişkenin değişmez türünü korur.

type Config = { mode: "dev" | "prod"; retries: number }

const cfg = {
  mode: "prod",
  retries: 3,
  // timeout: 1000, // Error with satisfies if not in type
} satisfies Config

// cfg.mode is still the literal "prod" (not widened to string)
// and adding unknown keys raises an error at compile-time

satisfies (diziler)

Dizilerde, öğelerin şekilleri as const satisfies ile doğrulanır; değişmez değerler korunur ve otomatik tamamlama geliştirilir.

type Route = { path: `/${string}`; method: "GET" | "POST" }

const routes = [
  { path: "/", method: "GET" },
  { path: "/login", method: "POST" }
] as const satisfies ReadonlyArray<Route>

// each element is checked against Route, literals preserved for DX

satisfies denetimi

Hızlı denetim: satisfies gerçekte ne yapar?

Özet

Özet: Yüklemler (x is T) sözleşme görevi görür; satisfies biçimi doğrular ve değişmez türleri korur. İkisini birlikte kullanın.

Sıkça Sorulan Sorular

“Koşul işlevleri ve satisfies işleci” dersi ücretsiz mi?

Evet — “Koşul işlevleri ve satisfies işleci” 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.

“Koşul işlevleri ve satisfies işleci” dersinde ne öğreneceğim?

Koşul dönüş türleriyle özel tür koruyucuları yazın ve genişletmeden satisfies işleciyle nesneleri doğrulayı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 2. dersidir.

“Koşul işlevleri ve satisfies işleci” 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