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 bir geliştirici olarak bu değerin aslında ne olduğunu daha iyi bilirsiniz. Tür belirtimleri, TypeScript’e "bana güven, bu değerin bu belirli türde olduğunu biliyorum" demenizi sağlar.
TypeScript, tür iddiaları için iki sözdizimi sunar. as sözdizimi daha yaygın yaklaşımdır:
let data: unknown = '{"name": "John", "age": 30}';
let user = data as string;Açılı parantez söz dizimini de kullanabilirsiniz, ancak modern TypeScript'te bu daha az yaygındır:
let data: unknown = '{"name": "John", "age": 30}';
let user = <string>data;Görev
KolayHarici bir API simülasyonundan gelen verileri işleyen bir işlev oluştur. unknown türündeki değerlerle çalışacak ve özelliklerine güvenli bir şekilde erişmek için tür belirteçlerini kullanacaksın.
unknown türünde bir apiResponse değişkeni oluştur ve ona aşağıdaki JSON dizesini ata:
{"userId": 42, "username": "alice_dev", "isActive": true}Şunları yapan processUserData adlı bir işlev oluştur:
unknowntüründe birdataparametresi alırdatadeğerini birstringolarak ele almak için tür belirteci 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 belirteci 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ştur:
unknowntüründe, JSON dizesi{"userId": 15, "username": "bob_admin", "isActive": false}olan birsecondApiResponseoluşturunknowntüründe, JSON dizesi{"userId": 99, "username": "charlie_user", "isActive": true}olan birthirdApiResponseoluştur
İşlevini test et ve aşağıdaki çıktıları yazdır:
processUserDataişleviniapiResponseile çağır ve sonucu yazdırprocessUserDataişlevinisecondApiResponseile çağır ve sonucu yazdırprocessUserDataişlevinithirdApiResponseile çağır ve sonucu yazdır
Kendin dene
// API yanıt değişkenlerini oluştur
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}';
// TODO: processUserData fonksiyonunu burada oluştur
// Fonksiyonu test et ve sonuçları yazdır
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ımlamaKendi başına pratik yap: Online JavaScript derleyicisi