Readonly vs const
- TypeScript kursu
- Orta seviye
- Ders 13/89
- 4 dk
readonly ile const arasındaki farkı öğrenirsin.
readonly vs const
const bağımsız değişkenler için, readonly ise sınıf alanları için kullanılır. const değişkeni yeniden atamayı engeller; readonly alanı constructor sonrası değiştirilmez yapar.
const MAX = 100;
class Config {
readonly limit: number = MAX;
}Hangi durumda hangisi?
Bağımsız bir sabit için const, sınıf alanı için readonly kullan. const sınıf gövdesinde geçerli değildir; readonly ise yalnızca sınıf üyelerinde çalışır.
// Değişmez sabit:
const VERSION = "1.0";
// Sınıf alanı:
class App {
readonly version: string = VERSION;
}Uygulama readonly alanlı App sınıfı
App sınıfını tanımla: readonly version: string = "1.0" alanı ile (başlangıç değeri ver). Yeni bir App oluştur ve version alanını yazdır.
Başlangıç kodu
// App sınıfı tanımla (değiştirilemez sürüm alanı, başlangıç değeri 1.0)
// yeni App oluştur, version'ı yazdırÖrnek çözüm
class App {
readonly version: string = "1.0";
}
const a = new App();
console.log(a.version);Beklenen çıktı
1.0
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir sınıf alanını değiştirilemez yapmak için hangisi kullanılır?
- readonly Doğru cevap
- static
- const
- let
Açıklama: Sınıf alanları için readonly kullanılır. const sınıf gövdesinde geçerli değildir; yalnızca bağımsız değişkenler için kullanılır. let değiştirilebilir, static ise sınıf düzeyi belirtecidir.
2 Sınıf alanı için doğru belirteci tamamla
class App {
____ version: string = "1.0";
}
class App {
readonly version: string = "1.0";
}
Açıklama: Sınıf alanını değiştirilemez yapmak için readonly kullanılır. const sınıf gövdesinde geçersiz, static sınıf düzeyine taşır (değiştirilebilir), public erişimi açar (değiştirilebilir).
3 readonly vs const parçaları
| Kavram | Anlamı |
|---|---|
const |
Değişken için sabit |
readonly |
Sınıf alanı için sabit |
const MAX = 100 |
Bağımsız sabit |
readonly limit: number |
Sınıf sabit alanı |