Readonly parametre
- TypeScript kursu
- Orta seviye
- Ders 12/89
- 4 dk
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
// 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
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
class Point {
____ x: number;
constructor(x: number) {
this.x = x;
}
}
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 |