Bir tür iddiası, as kullanarak derleyiciye "bana güven, bu değer X tipidir" der. Hiçbir çalışma zamanı dönüşümü veya kontrol yapmaz — yalnızca derleyicinin değeri nasıl ele aldığını değiştirir.
ts
el = .() ;
el. = ;
data = .(str) ;
Bir tür iddiası, as kullanarak derleyiciye "bana güven, bu değer X tipidir" der. Hiçbir çalışma zamanı dönüşümü veya kontrol yapmaz — yalnızca derleyicinin değeri nasıl ele aldığını değiştirir.
el = .() ;
el. = ;
data = .(str) ;
Bir iddia derleyicinin yargısını geçersiz kılar — yanılırsanız, uyarı olmadan çalışma zamanı hatası alırsınız:
const x = "hello" as unknown as number; // double assertion — compiler stops complaining
x.toFixed(2); // 💥 runtime error: x.toFixed is not a function
Iddia değeri o tip yapmaz; sadece kontrol cihazını susturur. Derleyiciye olan doğruluk sorumluluğunu üstlenmiş oldunuz.
// 1. type guard — actually verify at runtime
if (typeof input === "string") { /* input is string, proven */ }
// 2. validation library (zod) for external data
const user = UserSchema.parse(data); // throws if shape is wrong
as const farklıdırconst point = { x: 1 } as const; // not a risky cast — narrows to literal/readonly
İddialar bazen gereklidir (DOM API'leri, zaten kontrol ettiğiniz unknown daraltmak), ancak her biri derleyicinin sizi koruyamayacağı bir yerdir.
Güvenilmeyen veriler için tür korumaları veya şema doğrulamasını tercih edin ve her as öğesini küçük, kasıtlı bir "daha iyi biliyorum" olarak değerlendirin.