0Pricing
TypeScript Academy · Ders

Option ve Maybe Türleri

Bir değerin varlığını veya yokluğunu açıkça modelleyin.

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

Yokluğu Modelleme

Bazen bir değer yalnızca mevcut olmayabilir ve bildirilecek bir hata bulunmayabilir. Seçenek (Belki olarak da adlandırılır), varlığı veya yokluğu açıkça modeller; null ve undefined kullanımına bir alternatiftir.

Seçenek Tanımlama

Seçenek, some etiketine sahip bir ayırt edici birleşimdir. some doğru olduğunda bir değer vardır; yanlış olduğunda ise hiçbir şey yoktur.

type Option<T> =
  | { some: true; value: T }
  | { some: false };

Oluşturucular

some ve none yardımcıları, Seçenek değerlerini kolayca oluşturmayı sağlar; bunlar Sonuç türündeki ok/err yardımcılarına benzer.

const some = <T>(value: T): Option<T> => ({ some: true, value });
const none: Option<never> = { some: false };

Seçenek Döndürme

Hiçbir şey bulamayabilecek bir arama, T | undefined yerine bir Seçenek döndürür. İsteğe bağlı olma amacı tür içinde açıkça görülür.

function find<T>(arr: T[], pred: (x: T) => boolean): Option<T> {
  const hit = arr.find(pred);
  return hit === undefined ? none : some(hit);
}

some Durumuna Göre Tür Daraltma

Değere güvenli biçimde erişmek için opt.some değerini kontrol edin. Derleyici, value değerinin yalnızca mevcut dalın içinde okunmasına izin verir.

const r = find([1, 2, 3], n => n > 1);
if (r.some) console.log(r.value); // 2
else console.log("not found");

Neden Yalnızca null Kullanılmamalı?

null ve undefined değerlerini unutmak kolaydır; ayrıca bunlar diğer türlerle birbirine karışır. Açık bir Seçenek, yokluk durumunun ele alınmasını zorunlu kılar ve bunun bilinçli olarak tercih edildiğini açıkça gösterir.

Seçenek ile T | undefined Karşılaştırması

İkisi de yokluğu modelleyebilir, ancak Seçenek, yardımcılar (map, getOrElse) ekleyebileceğiniz bilinçli ve adlandırılmış bir yapıdır; bu da kod tabanında tutarlı işlemeyi teşvik eder.

// undefined is implicit and easy to ignore;
// Option is explicit and self-documenting.

Bir getOrElse Yardımcısı

Bir Seçeneği somut bir değere dönüştürmek için yokluk durumunda kullanılacak bir yedek değer sağlayın. Böylece yokluk işlemesi, açıkça görülebilen tek bir yerde tutulur.

function getOrElse<T>(o: Option<T>, fallback: T): T {
  return o.some ? o.value : fallback;
}
console.log(getOrElse(none, 0)); // 0

Seçenek Üzerinde map İşlemi

map, içteki değeri yalnızca mevcut olduğunda dönüştürür ve yokluk durumunu değiştirmeden bırakır. Bu, tekrarlanan kontroller olmadan dönüşümleri zincirlemenizi sağlar.

function mapOpt<T, U>(o: Option<T>, f: (t: T) => U): Option<U> {
  return o.some ? some(f(o.value)) : none;
}
console.log(mapOpt(some(5), n => n * 2)); // { some: true, value: 10 }

Seçenek ve Sonuç Karşılaştırması

Yokluğun bir neden taşımadığı durumlarda (aramada hiçbir şey bulunamaması) Seçenek kullanın. Başarısızlığın açıklayıcı bir hata taşıdığı durumlarda Sonuç kullanın. Seçiminizi neden bilgisini aktarmanız gerekip gerekmediğine göre yapın.

Seçenekleri Birleştirme

Seçenek map ve getOrElse içerdiğinden, isteğe bağlı adımların zincirleri okunabilir kalır; yokluk, zincir boyunca otomatik olarak kısa devreye neden olur.

const out = getOrElse(mapOpt(find([1,2], n => n > 1), n => n + 100), -1);
console.log(out); // 102

Hızlı Kontrol

Bu dersle ilgili hızlı bir kontrol.

Özet

Seçenek<T>, yokluğu null yerine açıkça modelleyen { some: true; value } veya { some: false } biçimindedir. some/none ile oluşturun, some alanına göre türü daraltın ve getOrElse ile map gibi yardımcıları kullanın. Yokluğun bir nedeni gerekmiyorsa Seçenek türünü, başarısızlığın bir nedeni gerekiyorsa Sonuç türünü tercih edin.

Sıkça Sorulan Sorular

“Option ve Maybe Türleri” dersi ücretsiz mi?

Evet — “Option ve Maybe Türleri” 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.

“Option ve Maybe Türleri” dersinde ne öğreneceğim?

Bir değerin varlığını veya yokluğunu açıkça modelleyin. 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 3. dersidir.

“Option ve Maybe Türleri” 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. Hata Fırlatmanın Sorunu
  2. Result Türlerini Modelleme
  3. Option ve Maybe Türleri
  4. Demiryolu Odaklı Programlama
← TypeScript Academy Sayfasına Dön