readonly diziler
- TypeScript kursu
- Başlangıç
- Ders 13/89
- 4 dk
readonly dizilerin değiştirilemezliğini öğrenirsin.
readonly diziler
readonly değiştiricisi bir dizinin değiştirilemez olduğunu belirtir. readonly number[] yazdığında, diziye push, pop gibi metotlarla öğe eklenemez veya çıkarılamaz; yalnızca okunabilir. Bu yanlışlıkla veriyi değiştirmeyi önler.
let sabit: readonly number[] = [1, 2, 3];
// sabit.push(4); // Hata
console.log(sabit[0]); // 1readonly ve normal dizi farkı
Normal number[] değiştirilebilir; readonly number[] ise değildir. readonly diziyi normal diziye atarken TypeScript uyarır, çünkü değiştirilebilir kopya veri bütünlüğünü bozabilir. Readonly özellikle fonksiyon parametrelerinde veriyi korumak için kullanışlıdır.
function goster(d: readonly number[]) {
// d.push(5); // Hata
return d[0];
}Uygulama Günler dizisi
gunler adında readonly string[] dizisi tanımla ve içine "pzt", "sal", "çar" değerlerini koy. Sonra diziyi console.log ile yazdır.
Başlangıç kodu
// readonly string dizisi tanımla ve yazdırÖrnek çözüm
let gunler: readonly string[] = ["pzt", "sal", "çar"];
console.log(gunler);Beklenen çıktı
[ 'pzt', 'sal', 'çar' ]
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 `readonly string[]` ile tanımlanan dizi üzerinde hangi işlem geçerlidir?
- Dizinin ilk öğesini değiştirmek
- Diziyi pop ile küçültmek
- Diziye push ile öğe eklemek
- Diziyi okumak (ör. sabit[0]) Doğru cevap
Açıklama: readonly diziye yalnızca okuma yapılabilir; `push`, `pop` ve öğe atama derleme hatası verir.
2 readonly dizi tanımla
let puanlar: ____ = [90, 85, 70];
let puanlar: readonly number[] = [90, 85, 70];
Açıklama: `readonly number[]`, değiştirilemez bir sayı dizisi tanımlar; yalnızca `number[]` veya `Array<number>` yazmak readonly korumasını eklemez.
3 readonly davranışları
| Kavram | Anlamı |
|---|---|
readonly number[] |
Değiştirilemez sayı dizisi |
number[] |
Değiştirilebilir sayı dizisi |
sabit.push(4) |
readonly dizide hata verir |
sabit[0] |
readonly dizide geçerli |