Tür Atamaları
Coddy'nin JavaScript Journey'sinin TypeScript'e Giriş bölümünün bir parçası — ders 68 / 73.
Bazen TypeScript bir değerin tam türünü belirlemek için yeterli bilgiye sahip değildir, ancak geliştirici olarak siz o değerin gerçekte ne olduğu hakkında daha fazla bilgiye sahipsinizdir. Tür onaylamaları (Type assertions), TypeScript'e "bana güven, bu değerin şu belirli türde olduğunu biliyorum" demenize olanak tanır.
TypeScript, tür onaylamaları (type assertions) için iki söz dizimi sağlar. as söz dizimi daha yaygın olan yaklaşımdır:
let data: unknown = '{"name": "John", "age": 30}';
let user = data as string;Modern TypeScript'te daha az yaygın olsa da, açılı ayraç (angle-bracket) sözdizimini de kullanabilirsiniz:
let data: unknown = '{"name": "John", "age": 30}';
let user = <string>data;Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Görev
KolayHarici bir API simülasyonundan gelen verileri işleyen bir fonksiyon oluşturun. unknown türündeki değerlerle çalışacak ve özelliklerine güvenli bir şekilde erişmek için tür onaylamalarını (type assertions) kullanacaksınız.
unknown türünde bir apiResponse değişkeni oluşturun ve ona aşağıdaki JSON dizesini atayın:
{"userId": 42, "username": "alice_dev", "isActive": true}Aşağıdaki işlemleri yapan processUserData adında bir fonksiyon oluşturun:
unknowntüründe birdataparametresi alırdataparametresini birstringolarak ele almak için bir tür onaylaması kullanırJSON.parse()kullanarak JSON dizesini ayrıştırır- Ayrıştırılan sonucu
userId(number),username(string) veisActive(boolean) özelliklerine sahip bir nesne olarak ele almak için başka bir tür onaylaması kullanır - Biçimlendirilmiş bir dize döndürür:
"User [userId]: [username] (Active: [isActive])" - Açık bir
stringdönüş türüne sahiptir
Ek test verileri oluşturun:
{"userId": 15, "username": "bob_admin", "isActive": false}JSON dizesi ileunknowntüründesecondApiResponseoluşturun{"userId": 99, "username": "charlie_user", "isActive": true}JSON dizesi ileunknowntüründethirdApiResponseoluşturun
Fonksiyonunuzu test edin ve aşağıdaki çıktıları yazdırın:
apiResponseileprocessUserDatafonksiyonunu çağırın ve sonucu yazdırınsecondApiResponseileprocessUserDatafonksiyonunu çağırın ve sonucu yazdırınthirdApiResponseileprocessUserDatafonksiyonunu çağırın ve sonucu yazdırın
Kopya kağıdı
Tür onaylamaları (Type assertions), bir değerin belirli türünü TypeScript'in çıkarabileceğinden daha iyi bildiğinizde bunu TypeScript'e söylemenize olanak tanır.
as sözdizimini kullanın (en yaygın olanı):
let data: unknown = '{"name": "John", "age": 30}';
let user = data as string;Alternatif açılı ayraç (angle-bracket) sözdizimi:
let data: unknown = '{"name": "John", "age": 30}';
let user = <string>data;Kendin dene
// API yanıt değişkenlerini oluşturun
const apiResponse: unknown = '{"userId": 42, "username": "alice_dev", "isActive": true}';
const secondApiResponse: unknown = '{"userId": 15, "username": "bob_admin", "isActive": false}';
const thirdApiResponse: unknown = '{"userId": 99, "username": "charlie_user", "isActive": true}';
// YAPILACAK: processUserData fonksiyonunu burada oluşturun
// Fonksiyonu test edin ve sonuçları yazdırın
console.log(processUserData(apiResponse));
console.log(processUserData(secondApiResponse));
console.log(processUserData(thirdApiResponse));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ı8Enumlar
Sayısal Enum Nedir?Sayısal Enum KullanımıString Enum Nedir?String Enum KullanımıHeterojen EnumlarÖzet: Enum Kullanımı11İleri Düzey Konular
Tür AtamalarıTür Korumaları: in & instanceof'never' TürüNullable Türler ('strictNull')Nesneler için İndeks İmzalarıÖzet: Türlerde İnce Ayar Yapma3Veri 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ımlama