0Pricing
TypeScript Academy · Ders

Readonly Diziler ve Değişmez Veriler

Yanlışlıkla yapılan değişiklikleri önlemek için ReadonlyArray kullanın.

Readonly Diziler ve Değişmez Veriler, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 2. 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.

Hoş Geldiniz

Değiştirilebilir diziler, kodunuzun herhangi bir yerinde yanlışlıkla değiştirilebilir. TypeScript'in ReadonlyArray türü ve readonly değiştiricisi, değişmezliği zorunlu kılmanıza yardımcı olur.

Dizilerde readonly Değiştiricisi

Değişikliği önlemek için dizi türünün önüne `readonly` değiştiricisini ekleyin. Dizi okunabilir ancak değiştirilemez.
const ids: readonly number[] = [1, 2, 3];
// ids.push(4);   // Error
// ids[0] = 99;   // Error
console.log(ids[0]); // OK — reading is fine

ReadonlyArray<T> Genel Biçimi

`ReadonlyArray`, `readonly T[]` ifadesinin genel tür karşılığıdır. Her ikisi de push, pop, splice ve dizin atamasını engeller.
const names: ReadonlyArray<string> = ['Alice', 'Bob'];
// names.push('Charlie'); // Error

İşlevlerden Readonly Diziler Döndürme

Sonucun değiştirilmemesi gerektiğini çağıranlara belirtmek için işlevlerden readonly diziler döndürün.
function getConfig(): readonly string[] {
  return ['host', 'port', 'db'];
}

Değişmez İşlev Parametreleri

İşlevin çağırana ait diziyi değiştirmesini önlemek için dizi parametrelerini readonly olarak işaretleyin.
function sum(nums: readonly number[]): number {
  return nums.reduce((a, b) => a + b, 0);
  // nums.push(99); // Error inside function
}

Değişmez Diziler İçin as const

`as const` iddiası, bir diziyi readonly yapar ve genişletilmiş türler yerine değişmez öğe türlerine sahip bir demet türü çıkarır.
const colors = ['red', 'green', 'blue'] as const;
// type: readonly ['red', 'green', 'blue']
// colors.push('yellow'); // Error

Readonly Derin Dondurma Yapmaz

readonly yalnızca dizi başvurusunun değiştirilmesini önler. Öğeler nesne ise bu nesnelerin özellikleri yine de değiştirilebilir.
const users: readonly { name: string }[] = [{ name: 'Alice' }];
// users.push({}); // Error
users[0].name = 'Bob'; // Allowed — object itself is mutable

Readonly<T> ile Derinlemesine Değişmezlik

Nesnelerde derinlemesine değişmezlik sağlamak için öğelerde ReadonlyArray ile Readonly türlerini birleştirin. Alternatif olarak immer gibi bir kütüphane kullanın.
type ImmutableUser = Readonly<{ name: string; scores: readonly number[] }>;
const u: ImmutableUser = { name: 'Alice', scores: [90, 85] };
// u.name = 'Bob';       // Error
// u.scores.push(100);  // Error

Değiştirilebilir ve Readonly Atamaları

Readonly bir dizi, değiştirilebilir bir dizi türüne atanamaz. Bu, değişiklik beklenen bir yerde değişmez bir dizinin yanlışlıkla geçirilmesine karşı koruma sağlar.
const ro: readonly number[] = [1, 2];
const mutable: number[] = ro; // Error!

Readonly Diziler Ne Zaman Kullanılmalı

Yapılandırma nesneleri, sabitler, değiştirmeyeceğinize söz verdiğiniz işlev parametreleri ve saf işlevlerin dönüş değerleri için readonly diziler kullanın.

Yayma İşlemi Yeni Bir Değiştirilebilir Dizi Oluşturur

Readonly bir diziyi yeni bir dizi değişmezi içine yaymak, değiştirilebilir bir kopya oluşturur. Bu, özgün diziyi değiştirmeden değişiklik yapmak için temiz bir yöntemdir.
const base: readonly number[] = [1, 2, 3];
const extended: number[] = [...base, 4]; // new mutable array

Kısa Kontrol

TypeScript'te `readonly number[]` üzerinde hangi işleme izin verilmez?

Özet

Dizi değişikliklerini önlemek için `readonly T[]` veya `ReadonlyArray` kullanın. Değişmez sabit diziler için `as const` kullanın. Readonly bir diziyi genişletmeniz gerektiğinde yayma işlemi değiştirilebilir bir kopya oluşturur.

Sıkça Sorulan Sorular

“Readonly Diziler ve Değişmez Veriler” dersi ücretsiz mi?

Evet — “Readonly Diziler ve Değişmez Veriler” 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.

“Readonly Diziler ve Değişmez Veriler” dersinde ne öğreneceğim?

Yanlışlıkla yapılan değişiklikleri önlemek için ReadonlyArray kullanı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 2. dersidir.

“Readonly Diziler ve Değişmez Veriler” 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ürlü Diziler: T[] ve Array
  2. Readonly Diziler ve Değişmez Veriler
  3. Demetler: Sabit Uzunluklu Türlü Diziler
  4. Numaralı ve Metin Sabitleri: Enum'lar
← TypeScript Academy Sayfasına Dön