Generic Identity Fonksiyonu Oluşturma
Coddy'nin JavaScript Journey'sinin TypeScript'e Giriş bölümünün bir parçası — ders 58 / 73.
Klasik identity örneğini kullanan genel bir fonksiyonun sözdizimi şöyledir:
function identity(arg: T): T {
return arg;
}Fonksiyon adından sonraki <T>, T adında bir tip parametresi tanımlar. Bu T, herhangi bir tipi temsil edebilen bir yer tutucu görevi görür. Bu fonksiyonu kullandığınızda, TypeScript T ifadesini çalıştığınız gerçek tiple değiştirecektir.
Bu yaklaşımın güzelliği, tür bilgisini korumasıdır.
Eğer identity("hello") çağırırsanız, TypeScript dönüş türünün string olduğunu bilir. Eğer identity(42) çağırırsanız, dönüş türünün number olduğunu bilir.
Tam tip güvenliğini korurken birden fazla tiple çalışmanın tüm esnekliğine sahip olursunuz.
Geleneksel olarak, T "Tür" (Type) anlamına gelir, ancak tür parametreniz için istediğiniz herhangi bir ismi kullanabilirsiniz. Önemli olan, fonksiyonunuzun girdi ve çıktı türleri arasında bir ilişki oluşturmasıdır.
Görev
KolayHerhangi bir türde argüman alan ve bu değeri içeren bir nesne döndüren wrapInObject adında genel (generic) bir fonksiyon oluşturun.
Fonksiyon şunları yapmalıdır:
- Genel bir tür parametresi olan
Tkullanmalı Ttüründeitemadında bir parametre kabul etmeliTtüründe tek birvalueözelliğine sahip bir nesne döndürmeli- Açık bir dönüş türü belirtecine sahip olmalı
Fonksiyonunuzu test etmek için aşağıdaki değişkenleri oluşturun:
wrappedString-wrapInObjectfonksiyonunu"Hello TypeScript"dizesi ile çağırınwrappedNumber-wrapInObjectfonksiyonunu42sayısı ile çağırınwrappedBoolean-wrapInObjectfonksiyonunutrueboolean değeri ile çağırın
Aşağıdaki çıktıları yazdırın:
wrappedString.valuedeğerini yazdırınwrappedNumber.valuedeğerini yazdırınwrappedBoolean.valuedeğerini yazdırın"Generic"dizesi ilewrapInObjectçağrısının sonucunu,valueözelliğine erişerek yazdırın100sayısı ilewrapInObjectçağrısının sonucunu,valueözelliğine erişerek yazdırın
Kendin dene
// TODO: Kodunuzu buraya yazın
// wrapInObject genel fonksiyonunu oluşturun
// TODO: Test değişkenlerini oluşturun
// wrappedString, wrappedNumber, wrappedBoolean
// Çıktıları yazdırın
console.log(wrappedString.value);
console.log(wrappedNumber.value);
console.log(wrappedBoolean.value);
console.log(wrapInObject("Generic").value);
console.log(wrapInObject(100).value);Bu 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ği