0Pricing
TypeScript Academy · Ders

satisfies Neden Var?

satisfies'in doldurduğu bildirim ve çıkarım arasındaki farkı öğrenin.

satisfies Neden Var?, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 1. 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 4 dersten oluşur.

Birbiriyle Çatışan İki Hedef

Bir config tanımladığınızda genellikle iki şey istersiniz: bilinen bir şekle karşı doğrulama ve değişmez değerlerin kesin çıkarımı. Bu hedefler çoğu zaman birbiriyle çelişir.

type Color = "red" | "green" | "blue";
// We want both: check the values AND remember exactly which ones.

Tür Belirtimi Değişmez Değerlerin Daraltmasını Kaybettirir

Bir tür belirtimi eklemek nesneyi doğrular, ancak değerleri genişletir. Derleyici, yazdığınız exact değişmez değerleri unutur.

type Config = { color: string; retries: number };
const cfg: Config = { color: "red", retries: 3 };
// cfg.color is string, not "red" anymore.
console.log(cfg.color.toUpperCase());

Genişletme Neden Sorun Oluşturur

color değeri string türüne genişletilirse, başka bir türü indekslemek gibi belirli değişmez değeri gerektiren yerlerde onu kullanma olanağınızı kaybedersiniz.

const cfg = { color: "red" } as { color: string };
// const exact: "red" = cfg.color; // Error: string not assignable to "red"
console.log(cfg.color);

Tür Belirtimi Olmayınca Doğrulama Kaybolur

Tür belirtimini kaldırmak kesin çıkarımı korur, ancak güvenlik ağını ortadan kaldırır. Yazım hataları ve yanlış şekiller fark edilmeden kalır.

const cfg = { color: "rad", retries: 3 };
// No error on the typo "rad" because nothing validates it.
console.log(cfg.color);

Doğrulama Açığı

Bir denetim olmadan, yanlış yazılmış bir renk gibi geçersiz bir değer programınızın içinde sessizce ilerler ve hatanın yapıldığı yerden çok uzakta bozulmaya neden olabilir.

const palette = { primary: "blu" }; // typo, no error
console.log(palette.primary); // "blu"

satisfies Operatörüyle Tanışın

satisfies operatörü bir ifadeyi bir türe karşı doğrularken çıkarılan kesin türü korur. İki dünyanın da en iyisini sunar.

type Config = { color: string; retries: number };
const cfg = { color: "red", retries: 3 } satisfies Config;
console.log(cfg.color); // type is "red", value validated

satisfies Değişmez Değerleri Korur

satisfies sonrasında cfg.color hâlâ geniş string türü değil, "red" değişmez değeridir. Çıkarım korunur.

type Config = { color: string };
const cfg = { color: "red" } satisfies Config;
const exact: "red" = cfg.color; // OK
console.log(exact);

satisfies Hâlâ Doğrulama Yapar

Nesne türle eşleşmezse satisfies, tıpkı bir tür belirtimi gibi bir hata bildirir.

type Config = { retries: number };
// const bad = { retries: "three" } satisfies Config; // Error
const good = { retries: 3 } satisfies Config;
console.log(good.retries);

Temel Örnek

Anahtarların bilinen rotalar, değerlerin ise işleyici adları olması gereken bir rota eşlemesini düşünün. Anahtarlarda otomatik tamamlama VE doğrulanmış değerler istiyoruz; satisfies bunu sağlar.

type Routes = Record<string, { method: "GET" | "POST" }>;
const routes = {
  home: { method: "GET" },
  submit: { method: "POST" }
} satisfies Routes;
console.log(routes.home.method); // "GET" literal

Üç Yaklaşımın Karşılaştırılması

Tür belirtimi: doğrular, genişletir. Tür belirtimi olmadan: kesin, doğrulanmamış. satisfies: doğrular ve kesinliği korur. Yapılandırmalar için üçüncü yaklaşım kazanır.

type C = { color: string };
const a: C = { color: "red" };          // widened
const b = { color: "red" };             // unvalidated
const c = { color: "red" } satisfies C; // validated + precise
console.log(a.color, b.color, c.color);

satisfies Ne Zaman Kullanılmalı

Bir türe uyması gereken sabit bir değer tanımlarken, daha sonra bu değerin exact içeriğini de kullanmak istiyorsanız satisfies kullanın.

type Sizes = Record<string, number>;
const sizes = { sm: 8, md: 16, lg: 24 } satisfies Sizes;
// keys "sm" | "md" | "lg" stay known for autocomplete
console.log(sizes.md);

Kısa Kontrol: satisfies Neden Var

satisfies ifadesinin neden var olduğunu anlayıp anlamadığınızı sınayın.

Özet: satisfies Neden Var

Tür belirtimlerinin doğruladığını ancak genişlettiğini, tür belirtimi olmamasının kesinliği koruyup doğrulama yapmadığını ve satisfies operatörünün yapılandırma nesneleri için ideal olan doğrulama ile kesin çıkarımı birlikte sunduğunu öğrendiniz.

type C = { color: string };
const c = { color: "blue" } satisfies C;
const exact: "blue" = c.color;
console.log(exact);

Sıkça Sorulan Sorular

“satisfies Neden Var?” dersi ücretsiz mi?

Evet — “satisfies Neden Var?” 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 4 dersten oluşur.

“satisfies Neden Var?” dersinde ne öğreneceğim?

satisfies'in doldurduğu bildirim ve çıkarım arasındaki farkı öğrenin. 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, 4 dersinin 1. dersidir.

“satisfies Neden Var?” 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. satisfies Neden Var?
  2. satisfies ve Tür Bildirimi
  3. satisfies ve as İddiası
  4. Uygulamalı satisfies Kalıpları
← TypeScript Academy Sayfasına Dön