CodeBlanks Logo Icon CodeBlanks

Type assertion vs casting

Onaylama ile gerçek dönüşüm farkını öğrenirsin.

Onaylama ile dönüşüm farkı

Type assertion yalnızca derleme zamanı bilgisidir; çalışma zamanında değeri değiştirmez. Örneğin "5" as number ifadesi değeri 5 sayısına dönüştürmez; runtime'da hâlâ string "5" kalır. Gerçek dönüşüm için Number(), String() gibi fonksiyonlar kullanılır.

const s: any = "5";
console.log((s as number) + 1); // "51"
console.log(Number(s) + 1);      // 6

Gerçek dönüşüm fonksiyonları

Çalışma zamanında gerçek tür dönüşümü için Number(), String(), Boolean() fonksiyonları kullanılır. Bunlar değerin runtime tipini değiştirir. Assertion ise yalnızca TypeScript'in tür yorumuna etki eder.

const n = Number("42");  // 42 sayisi
const t = String(42);    // "42" dizisi

Uygulama Assertion ve dönüşüm farkı

s değişkeni any türünde ve değeri "5". Önce as number ile onaylayıp iddia değişkenine ata; sonra Number() ile gerçek dönüşüm yapıp gercek değişkenine ata. Her birine 1 ekle ve console.log ile ayrı satırlarda yazdır.

Başlangıç kodu

index.ts
// s degiskenini iddia yontemiyle number olarak isaretle
// Number fonksiyonuyla gercek donusum yap
// her degiskene 1 ekle ve ayri satirlarda yazdir

const s: any = "5";

Örnek çözüm

index.ts
const s: any = "5";
const iddia = s as number;
const gercek = Number(s);
console.log(iddia + 1);
console.log(gercek + 1);

Beklenen çıktı

51
6

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bir string değeri gerçekten sayıya dönüştürmek için hangisi kullanılır?

  • <number> ile onaylama
  • typeof operatörü
  • as number ile onaylama
  • Number() fonksiyonu Doğru cevap

Açıklama: as number ve <number> yalnızca derleme zamanı bilgisidir; gerçek dönüşüm için Number() çağrılmalıdır.

2 Gerçek sayısal dönüşüm

Soru
const s: any = "42";
// gercek donusum icin
const n = ____;
console.log(n + 1);
Cevap
const s: any = "42";
// gercek donusum icin
const n = Number(s);
console.log(n + 1);

Açıklama: Çalışma zamanında gerçek dönüşüm için Number() fonksiyonu çağrılır; as sadece derleme zamanı bilgisidir.

3 Onaylama ve dönüşüm

Kavram Anlamı
as number Yalnızca derleme zamanı
Number(s) Çalışma zamanı dönüşümü
String(n) Diziye dönüşüm
Boolean(x) Mantıksal dönüşüm

Orta seviye bölümündeki tüm dersler