CodeBlanks Logo Icon CodeBlanks

Readonly parametre

Kurucu parametresinde readonly kullanmayı öğrenirsin.

readonly parametre

readonly bir constructor parametresine de yazılabilir; bu bir parametre özelliğidir (parameter property). Alan otomatik oluşturulur, readonly olur ve parametre değeri atanır. Gövdeye this.x = x yazmana gerek kalmaz.

class Point {
  constructor(readonly x: number, readonly y: number) {}
}
const p = new Point(3, 4);
console.log(p.x);

Uzun yazım karşılığı

Parametre özelliği kullanmadığında, aynı sonucu uzun yazım ile elde edersin: alanı readonly ile bildirir, constructor gövdesinde this ile atarsın. İki yazım da aynı değiştirilemezliği sağlar.

class Point {
  readonly x: number;
  readonly y: number;
  constructor(x: number, y: number) {
    this.x = x;
    this.y = y;
  }
}

Uygulama readonly alanlı Point sınıfı

Point sınıfını tanımla: readonly x: number ve readonly y: number alanları ile. constructor ile x ve y parametrelerini al ve this ile ata. Yeni bir Point(3, 4) oluştur ve x alanını yazdır.

Başlangıç kodu

index.ts
// Point sınıfı tanımla (değiştirilemez x ve y alanları)
// constructor ile x ve y al, this ile ata
// yeni Point oluştur, x'i yazdır

Örnek çözüm

index.ts
class Point {
  readonly x: number;
  readonly y: number;
  constructor(x: number, y: number) {
    this.x = x;
    this.y = y;
  }
}

const p = new Point(3, 4);
console.log(p.x);

Beklenen çıktı

3

Soru ve cevaplar

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

1 constructor(readonly apiKey: string) yazdığında ne olur?

  • Yalnızca parametre readonly olur
  • Sınıf hatası verir
  • apiKey static olur
  • apiKey alanı otomatik oluşturulur ve readonly olur Doğru cevap

Açıklama: readonly parametre özelliği, alanı otomatik tanımlar ve readonly yapar. Constructor dışında değiştirilemez; this.apiKey = apiKey yazmana gerek kalmaz.

2 readonly alanı tamamla

Soru
class Point {
  ____ x: number;
  constructor(x: number) {
    this.x = x;
  }
}
Cevap
class Point {
  readonly x: number;
  constructor(x: number) {
    this.x = x;
  }
}

Açıklama: x alanının değiştirilemez olması için readonly yazmalısın. const sınıf gövdesinde geçersiz, public ve private erişimi kontrol eder (hala değiştirilebilir).

3 Readonly parametre parçaları

Kavram Anlamı
constructor(readonly x: number) Kısa yazım (parametre özelliği)
readonly x: number Uzun yazım (alan bildirimi)
this.x = x Constructor ataması
p.x Dışarıdan okuma

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