Generic Interface'ler
Coddy'nin JavaScript Journey'sinin TypeScript'e Giriş bölümünün bir parçası. Ders 61 / 73.
Tıpkı genel işlevler oluşturabildiğiniz gibi, genel arayüzler de oluşturabilirsiniz. Bu, belirli özellik türlerini esnek ve yeniden kullanılabilir tutarken bir nesnenin yapısını tanımlamanıza olanak tanır.
Aynı tür parametresi söz dizimini kullanarak genel bir arayüzü şu şekilde oluşturabilirsiniz:
interface Container<T> {
value: T;
isEmpty: boolean;
}Arayüz adından sonra gelen <T>, arayüz tanımı boyunca kullanılabilecek bir tür parametresi oluşturur. Bu örnekte value özelliği, arayüzü kullanırken belirttiğiniz türde olurken isEmpty sabit bir boolean türü olarak kalır.
Genel bir arayüz kullandığınızda, somut türü açılı ayraçlar içinde belirtirsiniz:
const stringContainer: Container<string> = {
value: "hello",
isEmpty: false
};
const numberContainer: Container<number> = {
value: 42,
isEmpty: false
};Görev
KolayHer türden veriyi başarı bilgileriyle birlikte tutabilen Result adlı genel bir arayüz oluşturun.
Arayüz iki özelliğe sahip olmalıdır:
booleantüründesuccessTtüründe (generictür parametresi)data
Genel arayüzünüzü kullanarak aşağıdaki nesneleri oluşturun:
Result<string>türünde,success: truevedata: "Operation completed"değerlerine sahipstringResultResult<number>türünde,success: truevedata: 42değerlerine sahipnumberResultResult<boolean>türünde,success: falsevedata: falsedeğerlerine sahipbooleanResultResult<string[]>türünde,success: truevedata: ["item1", "item2", "item3"]değerlerine sahiparrayResult
Aşağıdaki özelliklere sahip, processResult adlı genel bir işlev oluşturun:
Tgenel tür parametresini kullanırResult<T>türünderesultadlı tek bir parametre alır- Bir dize iletisi döndürür
successdeğeritrueise"Success: [data]"döndürürsuccessdeğerifalseise"Failed: [data]"döndürür
Aşağıdaki çıktıları yazdırın:
processResultişlevinistringResultile çağırmanın sonucunu yazdırınprocessResultişlevininumberResultile çağırmanın sonucunu yazdırınprocessResultişlevinibooleanResultile çağırmanın sonucunu yazdırınprocessResultişleviniarrayResultile çağırmanın sonucunu yazdırınstringResult.datadeğerini yazdırın
Kendin dene
// TODO: Kodunuzu buraya yazın
// Jenerik Result arayüzünü oluşturun
// Result arayüzünü kullanarak nesneleri oluşturun
// Jenerik processResult fonksiyonunu oluşturun
// Gerekli çıktıları yazdırınBu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
TypeScript'e Giriş bölümündeki tüm dersler
1TS ile Başlarken
TypeScript Nedir?Neden TypeScript Kullanılır?İlk TypeScript KodunuzDerleme Süreci ve HatalarÖzet: TS'ye Giriş4Fonksiyonlarla Çalışmak
Parametre ve Dönüş Değerlerini TiplendirmeArrow Fonksiyonlarını Tiplendirme'void' Dönüş Tipi'?' ile Opsiyonel ParametrelerVarsayılan Parametre DeğerleriRest Parametrelerini TiplendirmeFonksiyon Tiplerini TanımlamaÖzet: Tiplendirilmiş Fonksiyonlar Oluşturma2Temel Tipler
Temel Tipler: str, num, boolean'any' Tipi: Kaçış Yolu'unknown' Tipi'null' ve 'undef' ile ÇalışmakTip Çıkarımı İş BaşındaAçık Tip BelirlemeleriÖzet: Temel Tipler Pratiği5Tipler: Takma Adlar, Unionlar ve Kesişimler
İlkel Tipler için Tip Takma AdlarıUnion Tipler ('|')Union Tipler ile ÇalışmakLiteral TiplerKesişim Tipleri ('&')Tip Takma Adlarını BirleştirmeÖzet: Gelişmiş Tip Kombinasyonları3Veri Yapısı: Diziler ve Tuple
Tipli DizilerDiziler için 'readonly' BelirleyicisiTuple Nedir?Tuple Tanımlama ve ErişmeTuple DestructuringReadonly Tuple'larÇok Boyutlu Tipli DizilerDizilerle Spread OperatörüÖzet: Diziler ve Tuple'lar6Nesneleri ve Interface'leri Tiplendirme
Satır İçi Nesne Tipi BelirtimleriNesneler için Type Alias KullanımıInterface'lere GirişInterface'ler ve Type Alias'ların KarşılaştırılmasıOpsiyonel ve Readonly ÖzelliklerInterface ve Tipleri GenişletmeInterface'lere Metot EklemeÖzet: Nesne Yapılarını Tanımlama9Generic Yapılar: İlk Bakış
Generic Yapıların Çözdüğü SorunGeneric Identity Fonksiyonu OluşturmaGeneric Fonksiyon KullanımıGeneric DizilerGeneric Interface'lerÖzet: Generic Fonksiyon PratiğiKendi başına pratik yap: TypeScript playground