Uygulamalı infer Kullanım Alanları: Promise'leri Açma
Promise, Array ve özel sarmalayıcı türlerini açın
Uygulamalı infer Kullanım Alanları: Promise'leri Açma, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 4. 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.
Sarmalayıcıdan Çıkarma Problemi
Asenkron kodla çalışırken sık sık Promise alır ve temelindeki T türüne ihtiyaç duyarsınız. infer anahtar sözcüğü bu çıkarma işlemini yeniden kullanılabilir hâle getirir.
type Awaited<T> = T extends Promise<infer U> ? U : T;
type A = Awaited<Promise<string>>; // string
type B = Awaited<number>; // numberYerleşik Awaited Yardımcı Türü
TypeScript 4.5, iç içe promise'leri özyinelemeli olarak işleyen yerleşik Awaited türünü kullanıma sundu.
type A = Awaited<Promise<Promise<string>>>; // string
// Handles arbitrary nesting automaticallyÖzel Derinlikle Sarmalayıcıdan Çıkarma
Awaited yerleşik hâle gelmeden önce geliştiriciler, promise'lerden sarmalayıcıları çıkarmak için infer içeren özyinelemeli türler kullanıyordu.
type DeepAwaited<T> =
T extends Promise<infer U> ? DeepAwaited<U> : T;
type A = DeepAwaited<Promise<Promise<number>>>; // numberDizi Öğelerini Sarmalayıcıdan Çıkarma
Aynı tür çıkarma kalıbı, yerleşik T[number] yaklaşımına eşdeğer olarak bir dizinin öğe türünü çıkarır.
type Element<T> = T extends (infer U)[] ? U : never;
type A = Element<string[]>; // string
type B = Element<number[]>; // numberGözlemlenebilir Türlerini Sarmalayıcıdan Çıkarma
RxJS Gözlemlenebilirleri için tür çıkarma, yayımlanan türü çıkarır.
type ObservableType<T> = T extends Observable<infer U> ? U : never;
type A = ObservableType<Observable<User>>; // Userİşlev Dönüşünü Sarmalayıcıdan Çıkarma
Asenkron bir işlevin çözümlenen değerini elde etmek için ReturnType ve Awaited türlerini birleştirin.
async function getUser(): Promise<User> { /* ... */ }
type UserResult = Awaited<ReturnType<typeof getUser>>; // Userİç İçe Sarmalayıcıları Çıkarma
Promise gibi birden çok katmanla sarılmış türleri işlemek için tür çıkarmayı zincirleyebilirsiniz.
type UnwrapPromiseArray<T> =
T extends Promise<infer U>
? U extends (infer V)[]
? V
: U
: T;
type A = UnwrapPromiseArray<Promise<User[]>>; // UserBiçime Göre Koşullu Sarmalayıcıdan Çıkarma
Yalnızca belirli türlerdeki sarmalayıcıları koşullu olarak çıkarmak, diğerlerini değiştirmeden bırakmak için tür çıkarmayı kullanın.
type MaybeUnwrap<T> =
T extends Promise<infer U> ? U : T extends (infer V)[] ? V : T;
type A = MaybeUnwrap<Promise<string>>; // string
type B = MaybeUnwrap<number[]>; // number
type C = MaybeUnwrap<boolean>; // booleanTürlendirilmiş API Getirme Sarmalayıcısı
Çözümlenen veri türünü döndüren genel bir getirme sarmalayıcısı, tür çıkarmaya dayalı sarmalayıcıdan çıkarmanın klasik bir uygulamasıdır.
async function fetchData<T>(url: string): Promise<T> {
const res = await fetch(url);
return res.json() as T;
}
type UserData = Awaited<ReturnType<typeof fetchData<User>>>; // UserHatalara Dayanıklı Sarmalayıcıdan Çıkarma
Sonuç deseni, tür çıkarma ile birleştirildiğinde ayırt edicili birleşimden başarı türünü çıkarmanızı sağlar.
type Ok<T> = { ok: true; value: T };
type Err = { ok: false; error: string };
type ExtractOk<T> = T extends Ok<infer V> ? V : never;
type A = ExtractOk<Ok<number> | Err>; // numberÖzet: Tür Çıkarmayla Sarmalayıcıdan Çıkarma
Tür çıkarma anahtar sözcüğü; promise'lerden, dizilerden, gözlemlenebilirlerden ve sonuç türlerinden tür çıkarmak için bir İsviçre çakısıdır. Yerleşik Awaited asenkron sarmalayıcıdan çıkarma işlemini yönetir; diğer yapılar için özel türler kullanın.
Hızlı Kontrol
Asenkron bir işlevin çözümlenen değer türünü elde etmenin en iyi yolu nedir?
Öğrendikleriniz
Tür çıkarmaya dayalı sarmalayıcıdan çıkarma, pratik TypeScript asenkron kodu için kullanışlı bir araçtır. Promise'ler için yerleşik Awaited türünü kullanın; diziler, gözlemlenebilirler ve sonuç kalıpları için özel sarmalayıcıdan çıkarma türleri oluşturun.
Sıkça Sorulan Sorular
“Uygulamalı infer Kullanım Alanları: Promise'leri Açma” dersi ücretsiz mi?
Evet — “Uygulamalı infer Kullanım Alanları: Promise'leri Açma” 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.
“Uygulamalı infer Kullanım Alanları: Promise'leri Açma” dersinde ne öğreneceğim?
Promise, Array ve özel sarmalayıcı türlerini açı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 4. dersidir.
“Uygulamalı infer Kullanım Alanları: Promise'leri Açma” 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
- Koşullu Türlerde infer'i Anlama
- ReturnType ve Parameters'ı Sıfırdan Oluşturma
- İç İçe Derin Çıkarım Örüntüleri
- Uygulamalı infer Kullanım Alanları: Promise'leri Açma