Menu
Coddy logo textTech

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;
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

challenge icon

Görev

Kolay

Harici 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:

  • unknown türünde bir data parametresi alır
  • data parametresini bir string olarak ele almak için bir tür onaylaması kullanır
  • JSON.parse() kullanarak JSON dizesini ayrıştırır
  • Ayrıştırılan sonucu userId (number), username (string) ve isActive (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 string dönüş türüne sahiptir

Ek test verileri oluşturun:

  • {"userId": 15, "username": "bob_admin", "isActive": false} JSON dizesi ile unknown türünde secondApiResponse oluşturun
  • {"userId": 99, "username": "charlie_user", "isActive": true} JSON dizesi ile unknown türünde thirdApiResponse oluşturun

Fonksiyonunuzu test edin ve aşağıdaki çıktıları yazdırın:

  • apiResponse ile processUserData fonksiyonunu çağırın ve sonucu yazdırın
  • secondApiResponse ile processUserData fonksiyonunu çağırın ve sonucu yazdırın
  • thirdApiResponse ile processUserData fonksiyonunu ç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));
quiz iconKendini test et

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