0Pricing
TypeScript Academy · Ders

Türlerle Akıcı Arayüzler

Türlerde biriken durumu izlerken yöntemleri zincirleyin.

Türlerle Akıcı Arayüzler, 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.

Ayarlananları İzleme

Basit bir oluşturucu, zorunlu alanlar eksik olsa bile build() çağrısını istediğiniz zaman yapmanıza izin verir. Genel bir tür parametresi kullanarak birikmiş durumu tür sisteminde izlemek suretiyle bunu daha iyi hâle getirebiliriz.

Bir Durum Türü Parametresi

Oluşturucuya, şimdiye kadar sağlanan anahtarları kaydeden genel türde bir S veririz. Her yöntem çalıştıkça S'yi yeni bir anahtarı içerecek şekilde genişletiriz.

class Builder<S> {
  // S is a record of keys set so far, e.g. {} or { url: string }
  private data: Record<string, unknown> = {};
}

Her Yöntem Bir Anahtar Kazandırır

Bir ayarlayıcı, S'si yeni eklenen anahtarı içeren yeni bir türlendirilmiş oluşturucu döndürür. Çalışma zamanı değeri saklar; tür de buna göre genişler.

  set<K extends string, V>(key: K, value: V): Builder<S & Record<K, V>> {
    this.data[key] = value;
    return this as unknown as Builder<S & Record<K, V>>;
  }

Kesişim Tekniği

S & Record<K, V> ifadesi, önceki durumu yeni anahtarla kesiştirir. İki çağrıdan sonra tür, her iki anahtarı da kesin olarak bilir.

type Empty = {};
type AfterUrl = Empty & Record<"url", string>;
type AfterBoth = AfterUrl & Record<"method", string>;
// AfterBoth = { url: string; method: string }

Somut Akıcı Oluşturucu

Burada bir istek oluşturucusu, birikmiş yapısını her çağrı boyunca taşır. Derleyici hangi alanların mevcut olduğunu her zaman tam olarak bilir.

class Req<S> {
  private d: Record<string, unknown> = {};
  url(u: string): Req<S & { url: string }> {
    this.d.url = u; return this as any;
  }
  method(m: string): Req<S & { method: string }> {
    this.d.method = m; return this as any;
  }
}

Zincirleme Kullandıkça Tür Büyür

Zincirdeki her çağrı, daha özel bir oluşturucu türü üretir. Bir düzenleyicide sonucun üzerine geldiğinizde birikmiş durumu görebilirsiniz.

const partial = new Req<{}>().url("/x");
// type: Req<{ url: string }>
const full = partial.method("POST");
// type: Req<{ url: string; method: string }>

Durumu Neden İzlemeli?

Tür, sağlanan anahtarlar kümesini taşıdığında, daha sonra build() yönteminin yalnızca zorunlu anahtarlar mevcut olduğunda derlenmesine izin verecek şekilde kısıtlayabiliriz. Durum parametresi bu garantinin temelidir.

Birikmiş Yapıyı Okuma

Birikmiş yapıyı incelemek için dışarı çıkarabilirsiniz. Bu, oluşturucunun türünün tam olarak yapılandırılanları yansıttığını doğrular.

type StateOf<T> = T extends Req<infer S> ? S : never;
type S1 = StateOf<Req<{ url: string }>>; // { url: string }

Çalışma Zamanı Basit Kalır

Tüm incelik türlerde bulunur. Çalışma zamanında her ayarlayıcı yalnızca bir nesnede değer saklar. Tür dönüşümleri (as any), çalışma zamanı nesnesi ile daha zengin derleme zamanı türü arasındaki köprüyü kurar.

const r = new Req<{}>().url("/users").method("GET");
console.log("configured url and method");

Kayıt Defteri Olarak Genel Tür Durumu

S'yi nelerin ayarlandığını tutan bir kayıt defteri olarak düşünün. Yöntemler bu deftere girdiler ekler; oluşturma adımı daha sonra oluşturmanın izinli olup olmadığına karar vermek için defteri okuyabilir.

Ödünleşimler

Tür düzeyinde durum izleme, kesin geliştirme ortamı geri bildirimi sağlar ve eksik oluşturma işlemlerini önler; bunun karşılığında birkaç tür dönüşümü ve daha ileri düzey genel türler gerekir. Çok kişinin kullandığı arayüzlerde bu maliyet karşılığını verir.

Hızlı Kontrol

Bu derse ilişkin hızlı bir kontrol.

Özet

Akıcı türlendirilmiş oluşturucu, genel bir durum parametresi olan S'yi taşır. Her ayarlayıcı, S'yi yeni anahtarla kesiştirir (S & Record<K, V>) ve daha özel bir oluşturucu döndürür; böylece derleyici, yapılandırılmış alanların kesin bir kayıt defterine sahip olur.

Sıkça Sorulan Sorular

“Türlerle Akıcı Arayüzler” dersi ücretsiz mi?

Evet — “Türlerle Akıcı Arayüzler” 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.

“Türlerle Akıcı Arayüzler” dersinde ne öğreneceğim?

Türlerde biriken durumu izlerken yöntemleri zincirleyin. 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.

“Türlerle Akıcı Arayüzler” 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. Oluşturucu Kalıbının Temelleri
  2. Türlerle Akıcı Arayüzler
  3. Gerekli Adımları Zorunlu Kılma
  4. Değişmez Oluşturucular
← TypeScript Academy Sayfasına Dön