0Pricing
TypeScript Academy · Ders

satisfies ve Tür Bildirimi

Biçimi doğrulamaya devam ederken değişmez çıkarımını koruyun.

satisfies ve Tür Bildirimi, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 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 4 dersten oluşur.

Tür Belirtimi Deseni

Klasik const config: Type = {...} deseni nesneyi doğrular, ancak değişkenin türü Type olur ve içindeki değişmez değerleri genişletir.

type Config = { mode: string; level: number };
const config: Config = { mode: "dark", level: 5 };
// config.mode has type string
console.log(config.mode);

Genişletme Nasıl Görünür

Tür belirtimiyle birlikte config.mode değeri string olur. Bu değeri "dark" değişmez değerini bekleyen bir değişkene atayamazsınız.

type Config = { mode: string };
const config: Config = { mode: "dark" };
// const m: "dark" = config.mode; // Error: string not assignable to "dark"
console.log(config.mode);

satisfies Deseni

const config = {...} satisfies Type kullanıldığında değişken, Type türüne karşı denetlenmeye devam ederken exact çıkarılan türünü korur.

type Config = { mode: string; level: number };
const config = { mode: "dark", level: 5 } satisfies Config;
// config.mode has type "dark"
console.log(config.mode);

Kesin Çıkarım Korunur

Artık config.mode değeri "dark" değişmez değeridir; bu nedenle dar türün gerekli olduğu her yerde çalışır.

type Config = { mode: string };
const config = { mode: "dark" } satisfies Config;
const m: "dark" = config.mode; // OK
console.log(m);

Her İkisi de Doğrulama Yapar

Her iki desen de geçersiz nesneleri reddeder. Fark, doğrulamanın yapılıp yapılmamasında değil, ortaya çıkan değişken türündedir.

type Config = { level: number };
// const a: Config = { level: "x" }; // Error
// const b = { level: "x" } satisfies Config; // Error
const ok = { level: 3 } satisfies Config;
console.log(ok.level);

Ek Özellikler Yakalanır

Tür belirtimleri gibi satisfies de hedef türde bulunmayan fazla özellikleri flags eder ve anahtarlardaki yazım hatalarının yakalanmasına yardımcı olur.

type Config = { mode: string };
// const c = { mode: "dark", extar: true } satisfies Config; // Error: extar
const c = { mode: "dark" } satisfies Config;
console.log(c.mode);

Demet Niteliğini Korumak

satisfies, as const ile birlikte kullanıldığında dizilerin demet benzeri kesinliğini korumasına ve aynı zamanda öğe türlerini doğrulamasına da yardımcı olur.

type Nums = readonly number[];
const xs = [1, 2, 3] as const satisfies Nums;
// xs is a readonly tuple [1, 2, 3], validated as numbers
console.log(xs.length);

Tür Belirtimi Birleşim Üyelerini Genişletir

Bir alan "a" | "b" gibi bir birleşimse, birleşim türüyle yazılmış bir tür belirtimi alanı birleşim olarak korur; ancak daha geniş bir alan türü onu genişletir. satisfies exact üyeyi sabitler.

type Config = { tier: string };
const withAnn: Config = { tier: "pro" };       // tier: string
const withSat = { tier: "pro" } satisfies Config; // tier: "pro"
console.log(withAnn.tier, withSat.tier);

Okumalarda Otomatik Tamamlamayı Korumak

satisfies değişmez anahtarları ve değerleri koruduğu için düzenleyiciler, daha geniş bildirilen türe göre değil, exact nesneye göre otomatik tamamlama sunabilir.

type Theme = Record<string, string>;
const theme = { bg: "black", fg: "white" } satisfies Theme;
// theme.<autocomplete shows bg and fg>
console.log(theme.bg, theme.fg);

Aralarında Seçim Yapmak

Daha geniş türü gerçekten istiyorsanız düz bir tür belirtimi kullanın. Doğrulama istiyor, ancak sonrasında kesin çıkarılan şekle de ihtiyaç duyuyorsanız satisfies kullanın.

type Config = { mode: string };
// Want wide type for reassignment flexibility -> annotation
let a: Config = { mode: "dark" };
// Want exact literals for later indexing -> satisfies
const b = { mode: "dark" } satisfies Config;
console.log(a.mode, b.mode);

Yan Yana Özet

Tür belirtimi genişletir; satisfies korur. İkisi de doğrulama yapar. Okuyacağınız değişmez config değerleri için satisfies genellikle daha iyi bir varsayılandır.

type C = { color: string; size: number };
const widened: C = { color: "red", size: 1 };
const exact = { color: "red", size: 1 } satisfies C;
console.log(widened.color, exact.color);

Kısa Kontrol: satisfies ve Tür Belirtimi

Aradaki farkı anlayıp anlamadığınızı sınayın.

Özet: satisfies ve Tür Belirtimi

Bir tür belirtiminin değişmez değerleri temel türlerine genişleterek doğruladığını öğrendiniz. satisfies operatörü ise doğrulama yapar ve exact çıkarımı koruyarak değişmez değerleri, anahtarları ve demet kesinliğini muhafaza eder.

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

Sıkça Sorulan Sorular

“satisfies ve Tür Bildirimi” dersi ücretsiz mi?

Evet — “satisfies ve Tür Bildirimi” 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 ve Tür Bildirimi” dersinde ne öğreneceğim?

Biçimi doğrulamaya devam ederken değişmez çıkarımını 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, 4 dersinin 2. dersidir.

“satisfies ve Tür Bildirimi” 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