TypeScript Academy · Ders

Tazelik ve Fazladan Özellik Denetimi

Fazladan özelliklerin bazı bağlamlarda neden hatalara yol açtığını keşfedin

3. ders / 413 adım

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 Point

Fazla Ö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 property

Fazla Ö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 assignment

Tü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 error

Kesiş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 }; // OK

Readonly 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 }; // Error

Dizin İ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' excess

Uygulama 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.

Başlamak ücretsiz

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

  1. Tür Genişletme ve Daraltma Mekanizmaları
  2. Bağlamsal Türlendirme: Bağlamdan Çıkarım
  3. Tazelik ve Fazladan Özellik Denetimi
  4. const Doğrulamaları ve as const
← TypeScript Academy Sayfasına Dön