Tazelik ve Fazladan Özellik Denetimi
Fazladan özelliklerin bazı bağlamlarda neden hatalara yol açtığını keşfedin
Tazelik ve Fazladan Özellik Denetimi, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 3. 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.
Tazelik Nedir?
Tazelik, nesne değişmezlerinin oluşturuldukları noktada "taze" kabul edildiği bir TypeScript kavramıdır. Taze nesneler, genişletilmiş nesnelerin geçirmediği katı fazla özellik denetiminden geçer.
interface Point { x: number; y: number; }
const p: Point = { x: 1, y: 2, z: 3 }; // Error: 'z' not in PointFazla Özellik Denetimi Uygulamada
Bir nesne değişmezini doğrudan tür belirtilmiş bir değişkene atadığınızda veya işlev bağımsız değişkeni olarak verdiğinizde TypeScript, hedef türde bulunmayan ek özellikleri bildirir.
function setPoint(p: { x: number; y: number }) {}
setPoint({ x: 1, y: 2, z: 3 }); // Error: 'z' excess propertyFazla Özellik Denetimi Neden Var?
JavaScript'te yaygın bir hata kaynağı olan yapılandırma nesnelerindeki yazım hatalarını ve istenmeyen özellikleri yakalar.
interface Options { timeout: number; retry?: boolean; }
const opts: Options = { timeout: 3000, retrey: true }; // Error — typo!Tazelik Nasıl Kaybedilir?
Bir nesne değişmezi ara bir değişkene atandığında artık "taze" değildir ve fazla özellik denetimi genişletilmiş türe uygulanmaz.
const opts = { timeout: 3000, retry: true, extra: "surprise" };
const o: Options = opts; // No error — freshness lost on assignmentTür Belirtimleri Tazeliği Atlar
as tür belirtimlerini kullanmak da fazla özellik denetimlerini atlar ve bu durum hataları gizleyebilir.
const o = { timeout: 3000, typo: true } as Options; // No errorKesişim Türleriyle Fazla Özellik Denetimi
Kesişim türleri fazla özellik denetimlerini bazen gevşetebilir; çünkü ek özellikler kesişim üyelerinden birine ait olabilir.
type A = { x: number };
type B = { y: number };
const ab: A & B = { x: 1, y: 2 }; // OKReadonly ve Fazla Özellikler
Fazla özellik denetimi readonly nesne türleri için de geçerlidir — kural değiştirilebilirlikle değil, yapısal biçimle ilgilidir.
interface Cfg { readonly host: string; }
const c: Cfg = { host: "localhost", port: 3000 }; // ErrorDizin İmzaları ve Fazla Özellikler
Bir türe dizin imzası eklemek, dize anahtarlı tüm ek özelliklere izin verir ve bu tür için fazla özellik denetimini fiilen devre dışı bırakır.
interface Flexible { name: string; [key: string]: unknown; }
const f: Flexible = { name: "ts", extra: true }; // OKİsteğe Bağlı Özellikler ve Tazelik
İsteğe bağlı özellikler fazla özellik denetimini gevşetmez. Hiç listelenmeyen bir özellik — isteğe bağlı olsa bile — hâlâ fazla özellik olarak bildirilir.
interface Shape { color?: string; }
const s: Shape = { color: "red", size: 10 }; // Error: 'size' excessUygulama Kalıpları
Ek yapılandırma özelliklerini tür belirtilmiş bir arayüzden hatasız geçirmek için ara bir değişken veya arayüzde dizin imzası kullanın.
// Option 1: intermediate variable (freshness lost)
const cfg = { timeout: 3000, debugMode: true };
const o: Options = cfg;
// Option 2: index signature in interfaceÖzet: Tazelik
Tazelik, taze nesne değişmezleri için geçerlidir ve atama noktasında fazla özellik denetiminin yapılmasını sağlar. Ek özelliklere izin vermek için ara bir değişkene atayın veya dizin imzası kullanın.
Hızlı Kontrol
Fazla özellik denetimi ne zaman NOT uygulanır?
Öğrendikleriniz
Tazelik ve fazla özellik denetimi, nesne değişmezlerindeki yazım hatalarına ve istenmeyen özelliklere karşı koruma sağlar. Şaşırtıcı tür hatalarından veya gizli hatalardan kaçınmak için tazeliğin ne zaman kaybedildiğini anlayın.
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
“Tazelik ve Fazladan Özellik Denetimi” dersi ücretsiz mi?
Evet — “Tazelik ve Fazladan Özellik Denetimi” 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.
“Tazelik ve Fazladan Özellik Denetimi” dersinde ne öğreneceğim?
Fazladan özelliklerin bazı bağlamlarda neden hatalara yol açtığını keşfedin 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 3. dersidir.
“Tazelik ve Fazladan Özellik Denetimi” 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 Genişletme ve Daraltma Mekanizmaları
- Bağlamsal Türlendirme: Bağlamdan Çıkarım
- Tazelik ve Fazladan Özellik Denetimi
- const Doğrulamaları ve as const