Tür İddiaları için as Anahtar Sözcüğü
Çıkarılan türleri as ile bilinçli olarak geçersiz kılın.
Tür İddiaları için as Anahtar Sözcüğü, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, TypeScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. TypeScript Academy kursu toplamda 4 dersten oluşur.
Tür Onaylaması Nedir
Tür onaylaması, derleyiciye şu mesajı verir: Bu değerin T türünde olduğunu biliyorum, bana güven. as anahtar sözcüğünü kullanırsınız: value as Type. Bu, değerin kendisini değil, tür denetleyicisinin değeri nasıl gördüğünü değiştirir.
const raw: unknown = 'hello world';
const text = raw as string;
console.log(text.toUpperCase());`as` Sözdizimi
Önce ifadeyi, ardından as anahtar sözcüğünü, sonra da hedef türü yazın. Daha eski bir açılı parantez sözdizimi de vardır; ancak as her yerde, JSX/TSX dosyalarında bile çalıştığı için tercih edilir.
const value: unknown = 42;
const n = value as number;
console.log(n + 8);Onaylamalar Çalışma Zamanını Değiştirmez
Bu kritik bir noktadır: onaylamalar yalnızca derleme zamanında geçerli olan talimatlardır. Kod çalıştırıldığında silinirler. Dönüştürme veya doğrulama yapılmaz; yanlış bir onaylama yaparsanız çalışma zamanındaki değer değişmez ve beklenmedik davranabilir.
const v: unknown = 'not a number';
const n = v as number; // compiles, but v is still a string
console.log(typeof n); // 'string' at runtime!Onaylamalar Ne Zaman Geçerlidir
TypeScript, yalnızca örtüşen türler arasında, yani türlerden birinin diğerine atanabildiği durumlarda doğrudan onaylamaya izin verir. unknown türünü string türüne onaylayabilir veya aralarındaki ilişki içinde türü genişletebilir ya da daraltabilirsiniz.
const u: unknown = 'ok';
const s = u as string; // valid: unknown overlaps everything
const broad = s as string | number; // valid widening
console.log(s, broad);Geçersiz Doğrudan Onaylamalar
İki türün hiçbir ortak noktası yoksa TypeScript, doğrudan onaylamayı muhtemel bir hata olarak reddeder. Örneğin bir string türünü doğrudan number türüne onaylamanız engellenir.
const s = 'hello';
// const n = s as number; // Error: neither type sufficiently overlaps
console.log('Direct unrelated assertions are blocked');Birleşim Türünü `as` ile Daraltma
Yaygın ve geçerli bir kullanım, derleyicinin bilmediği bir bilgiye sahip olduğunuzda birleşim değerini üyelerinden birine onaylamaktır. Bunu ölçülü kullanın; çalışma zamanı denetimi genellikle daha güvenlidir.
type Shape = { kind: 'circle'; r: number } | { kind: 'square'; s: number };
const data: Shape = { kind: 'circle', r: 5 };
const circle = data as { kind: 'circle'; r: number };
console.log(circle.r);DOM Öğe Türlerini Onaylama
Klasik bir gerçek dünya kullanımı şudur: DOM sorguları HTMLElement | null gibi broad bir tür döndürür. Belirli öğeyi bildiğinizde, öğeye özgü özelliklere erişmek için türünü onaylayın.
// document.getElementById returns HTMLElement | null
// const input = document.getElementById('email') as HTMLInputElement;
// console.log(input.value);
console.log('Assert HTMLElement to HTMLInputElement for .value');DOM Onaylamaları Neden Gereklidir
DOM API'leri hangi somut öğeyi alacağınızı bilemez; bu nedenle genel türler döndürürler. Belirli alt türü (örneğin HTMLInputElement) onaylamak, value veya checked gibi özelliklerin kullanımını mümkün kılar.
// const canvas = document.querySelector('#c') as HTMLCanvasElement;
// const ctx = canvas.getContext('2d');
console.log('querySelector returns Element | null; assert to specialize');`const` Onaylamaları Özel Bir Durumdur
as const kullanımını daha önce gördünüz. Bu, bir değeri değişmez türlerle derinlemesine salt okunur hâle getiren özel bir onaylamadır. Yalnızca daraltma yaptığı için her zaman güvenli olan tek onaylamadır.
const tuple = [1, 2, 3] as const;
// type: readonly [1, 2, 3]
console.log(tuple.length);Onaylamalar Güvenliği Devre Dışı Bırakır
Onaylamalar derleyiciye denetlemeyi bırakmasını söylediğinden, sorumluluğu size aktarır. Yanlış bir onaylama gerçek bir tür hatasını gizleyebilir ve bu hata çalışma zamanında çökmeye yol açana kadar fark edilmeyebilir. Onları yalnızca derleyiciden gerçekten daha fazlasını bildiğinizde kullanın.
const data: unknown = { id: 1 };
const user = data as { id: number; name: string };
// name does not exist at runtime
console.log(user.name); // undefined, no compile errorOnaylamak Yerine Daraltmayı Tercih Edin
Mümkün olduğunda onaylamalar yerine çalışma zamanı daraltmasını (tür koruyucularını) tercih edin. Daraltma türü kanıtlar; onaylama ise yalnızca öne sürer. Daraltmanın ifade edemediği durumlar, örneğin DOM özelleştirmesi için as kullanın.
function safe(v: unknown): number {
if (typeof v === 'number') return v; // proven
return 0;
}
console.log(safe(10), safe('x'));Hızlı Denetim
Tür onaylamalarını anlayıp anlamadığınızı sınayın.
Tekrar: `as` Onaylamaları
Şunları öğrendiniz:
value as Type, derleyiciye bir değeri verilen türde değerlendirmesini söyler.- Onaylamalar yalnızca derleme zamanında geçerlidir; çalışma zamanında dönüştürme veya denetleme yapılmaz.
- Yalnızca örtüşen türler arasında kullanılabilirler.
- Geçerli yaygın kullanımlar arasında
unknowntürünü daraltmak ve DOM öğesi türlerini özelleştirmek vardır. Mümkün olduğunda daraltmayı tercih edin.
Sırada null olmayan onaylama işleci var.
const raw: unknown = 'data';
const s = raw as string;
console.log(s.length);Yapay zeka eğitmeniyle TypeScript öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 101
- Dersler
- 352
Sıkça Sorulan Sorular
“Tür İddiaları için as Anahtar Sözcüğü” dersi ücretsiz mi?
Evet — “Tür İddiaları için as Anahtar Sözcüğü” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve TypeScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. TypeScript Academy kursu toplamda 4 dersten oluşur.
“Tür İddiaları için as Anahtar Sözcüğü” dersinde ne öğreneceğim?
Çıkarılan türleri as ile bilinçli olarak geçersiz kılın. TypeScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
TypeScript Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te TypeScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Tür İddiaları için as Anahtar Sözcüğü” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu TypeScript Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her TypeScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Tür İddiaları için as Anahtar Sözcüğü
- Null Olmama İddiası İşleci
- Çift İddialar ve Riskleri
- İddialar ve Tür Koruyucuları