0Pricing
TypeScript Academy · Ders

Doğru/Yanlış Değişmezleri ve Değişmez Çıkarımı

TypeScript'in değişmez çıkarımını nasıl genişlettiğini veya daralttığını anlayın.

Doğru/Yanlış Değişmezleri ve Değişmez Çıkarımı, 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.

Mantıksal Sabit Değer Türleri

boolean türü aslında true | false birleşimidir. Bunların her biri, yalnızca tek bir belirli mantıksal değere izin veren bir mantıksal sabit değer türüdür.

let yes: true = true;
let no: false = false;
console.log(yes, no);
// yes = false; // Error: false not assignable to true

Birleşimlerde Mantıksal Sabit Değerler

Mantıksal sabit değerler, başarı işaretini bir veri yükü biçimiyle birleştirmek gibi ayırt edici sonuçları modellemek için diğer sabit değerlerle birlikte kullanıldığında özellikle yararlıdır.

type Result =
  | { ok: true; value: number }
  | { ok: false; error: string };

const r: Result = { ok: true, value: 42 };
console.log(r);

Tür Genişlemesi

Bir değişkeni başlattığınızda TypeScript, hangi türü çıkaracağına karar verir. Bazen kesin sabit değeri korur, bazen de genel türe genişletir. Öngörülebilir türler elde etmek için bunu anlamak çok önemlidir.

const exact = 'hello'; // type: 'hello' (literal)
let broad = 'hello';   // type: string (widened)
console.log(exact, broad);

let Genel Türe Genişler

let ile tanımlanan bir değişkene yeniden değer atanabildiği için TypeScript, sonraki atamalara izin vermek amacıyla genel türü çıkarır. let ile tanımlanan bir metin değişkeni, sabit değer değil string türüyle başlar.

let mood = 'happy'; // inferred as string
mood = 'sad';       // allowed
mood = 'tired';     // allowed
console.log(mood);

const Sabit Değeri Korur

const ile tanımlanan bir değişkene yeniden değer atanamaz; bu nedenle TypeScript en özel tür olan sabit değer türünü çıkarır. Bu yüzden const greeting = 'hi' ifadesinin türü string değil, 'hi' olur.

const greeting = 'hi'; // type: 'hi'

type Greeting = typeof greeting; // 'hi'
const other: Greeting = 'hi';
console.log(other);

Sayılarla ve Mantıksal Değerlerle Genişleme

Aynı kural sayılar ve mantıksal değerler için de geçerlidir. const, 42 veya true değerlerini sabit değer olarak korur; let ise bunları number veya boolean türüne genişletir.

const n = 42;   // type: 42
const b = true; // type: true
let m = 42;     // type: number
let c = true;   // type: boolean
console.log(n, b, m, c);

Genişleme Neden Vardır?

Genişleme, günlük kod yazımını kolaylaştırır. Her let count = 0 ifadesi 0 sabit değeri olarak türlendirilseydi onu artıramazdınız. Genişleme, yeniden değer atanabilen değişkenlerin doğal biçimde çalışmasını sağlar.

let count = 0; // widened to number
count = count + 1;
count = 10;
console.log('Count:', count);

Açıklamayla Sabit Değeri Zorlamak

Bazen bir let değişkeninin sabit değer olarak kalmasını istersiniz. Açık bir sabit değer türü açıklaması eklediğinizde TypeScript, değişkeni dar tutar ve aynı birleşim içindeki başka bir değeri yeniden atamanıza yine izin verir.

let status: 'on' | 'off' = 'on';
status = 'off'; // allowed
console.log(status);
// status = 'paused'; // Error

Nesne Özelliklerinde Genişleme

Nesne sabitlerinin özellikleri de varsayılan olarak genişler. const ile tanımlanmış bir nesnede bile değiştirilebilir özellikler genel türü alır; çünkü özelliğin kendisine yeniden değer atanabilir.

const config = { mode: 'dark' };
// config.mode has type string, not 'dark'
config.mode = 'light';
console.log(config.mode);

İşlevlerle Sabit Değer Çıkarımı

İşlevlerin dönüş değerleri de çıkarılır. const ile tanımlanan bir sabit değer döndüren işlev, dönüş türünü açıklamadığınız veya imzada sabit değer türlerini kullanmadığınız sürece yine genel türe genişletir.

function getMode(): 'dark' | 'light' {
  return 'dark';
}

const m = getMode(); // type: 'dark' | 'light'
console.log(m);

Literal ve Genel Arasında Seçim

Pratik kural olarak: kesin değerlere (config anahtarları, ayırt ediciler) ihtiyaç duyduğunuzda const veya açık literal tür belirtimleri kullanın. Sıradan değiştirilebilir değişkenlerde genişlemeye izin verin. Hangisini elde edeceğinizi bilmek, şaşırtıcı atanabilirlik hatalarını önler.

const KEY = 'apiUrl';     // literal 'apiUrl'
let retries = 3;          // number
let level: 'low' | 'high' = 'low'; // pinned literal
console.log(KEY, retries, level);

Kısa Kontrol

Genişleme ve literal çıkarımı konusundaki kavrayışınızı sınayın.

Özet: Literal Çıkarımı

Temel çıkarımlar:

  • true ve false literal türlerdir; boolean, true | false'a eşittir.
  • let genel türe (string, number, boolean) genişler.
  • const tam literal türünü korur.
  • Bir let değişkenini dar bir birleşime sabitlemek için literal türle tür belirtimi yapın.

Sırada, değişmezliği as const ile açıkça belirteceğiz.

const literal = 'fixed'; // 'fixed'
let widened = 'fixed';   // string
let pinned: 'a' | 'b' = 'a';
console.log(literal, widened, pinned);

Sıkça Sorulan Sorular

“Doğru/Yanlış Değişmezleri ve Değişmez Çıkarımı” dersi ücretsiz mi?

Evet — “Doğru/Yanlış Değişmezleri ve Değişmez Çıkarımı” 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.

“Doğru/Yanlış Değişmezleri ve Değişmez Çıkarımı” dersinde ne öğreneceğim?

TypeScript'in değişmez çıkarımını nasıl genişlettiğini veya daralttığını anlayı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, 4 dersinin 2. dersidir.

“Doğru/Yanlış Değişmezleri ve Değişmez Çıkarımı” 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. Dize ve Sayısal Değişmez Türleri
  2. Doğru/Yanlış Değişmezleri ve Değişmez Çıkarımı
  3. as const ile const Bildirimleri
  4. Değişmezleri Birleşimlerde Birleştirme
← TypeScript Academy Sayfasına Dön