CodeBlanks Logo Icon CodeBlanks

readonly alanlar

readonly ile sınıf alanlarını sabitler öğrenirsin.

readonly nedir?

readonly bir sınıf alanını değiştirilemez yapar. Alan yalnızca tanımlandığı yerde (başlangıç değeri) veya constructor içinde atanabilir; başka yerde atamak derleme hatası verir.

class Config {
  readonly apiKey: string;
  constructor(apiKey: string) {
    this.apiKey = apiKey;
  }
}
const c = new Config("abc123");
// c.apiKey = "xyz";  // hata
console.log(c.apiKey);

readonly ve strict mode

Strict modda readonly alanların da başlangıç değeri verilmesi veya constructor'da atanması gerekir. İlk atamadan sonra alan dondurulur ve hiçbir metot veya dış kod onu değiştiremez.

class Config {
  readonly version: number = 1;
  readonly name: string;
  constructor(name: string) {
    this.name = name;
  }
}

Uygulama readonly alanlı Config sınıfı

Config sınıfını tanımla: readonly apiKey: string alanı ile. constructor ile apiKey parametresini al ve this ile ata. Yeni bir Config("abc123") oluştur ve apiKey alanını yazdır.

Başlangıç kodu

index.ts
// Config sınıfı tanımla (değiştirilemez api anahtarı)
// constructor ile apiKey al, this ile ata
// yeni Config oluştur, apiKey'i yazdır

Örnek çözüm

index.ts
class Config {
  readonly apiKey: string;
  constructor(apiKey: string) {
    this.apiKey = apiKey;
  }
}

const c = new Config("abc123");
console.log(c.apiKey);

Beklenen çıktı

abc123

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 readonly bir alanı constructor dışında değiştirmeye çalışırsan ne olur?

  • Derleme hatası Doğru cevap
  • Çalışır
  • Çalışma anı hatası
  • Undefined döner

Açıklama: readonly alan yalnızca declaration veya constructor içinde atanabilir. Constructor dışında atamaya çalışmak derleme hatası verir; çalışma anına kadar beklenmez.

2 readonly belirtecini tamamla

Soru
class Config {
  ____ apiKey: string = "abc";
}
Cevap
class Config {
  readonly apiKey: string = "abc";
}

Açıklama: readonly, alanı değiştirilemez yapar. const sınıf gövdesinde geçersiz, static sınıf düzeyine taşır (hala değiştirilebilir), private erişimi kısıtlar (hala değiştirilebilir).

3 readonly parçaları

Kavram Anlamı
readonly Değiştirilemez alan
constructor readonly atamaya izin veren yer
c.apiKey Dışarıdan okuma
c.apiKey = "xyz" Dışarıdan atama (hata)

Orta seviye bölümündeki tüm dersler