TypeScript'te bir
if bloğu içindeki typeof x === "string" kontrolü, o blok boyunca x'in tipine ne yapar?- aHiçbir şey — TypeScript bir değişkenin tipini runtime kontrole göre asla değiştirmez
- bO blok boyunca
x'in tipinistring'e daraltır✓ - c
x'i runtime'da gerçektenstring'e dönüştürür, değerini değiştirir - d
x'in tip anotasyonunu tamamen kaldırır
Açıklama:Bu, TypeScript'in temel daraltma (narrowing) mekanizmasıdır:
typeof kontrolü, tanınan tip guard'larından biridir. Kontrolün doğru olduğu dalın içinde, derleyici değişkenin tipini o blok boyunca statik olarak string'e daraltır, böylece cast gerekmeden string'e özgü metotlar kullanılabilir hale gelir.