readonly alanlar
- TypeScript kursu
- Orta seviye
- Ders 11/89
- 4 dk
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
// 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
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
class Config {
____ apiKey: string = "abc";
}
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) |