CodeBlanks Logo Icon CodeBlanks

readonly tuple

readonly tuple ile değiştirilemez tuple'ları öğrenirsin.

readonly tuple

Bir tuple'ın öğelerinin sonradan değiştirilememesi için türün başına readonly anahtar kelimesini koyarsın: readonly [string, number]. Böyle bir tuple'da öğelere erişebilirsin ama atama yapamazsın.

let t: readonly [string, number] = ["a", 1];
console.log(t[0]);   // "a"
t[0] = "b";          // derleme hatası

readonly tuple, verinin sonradan değişmemesini garanti altına almak için kullanılır.

readonly tuple ne zaman kullanılır?

readonly tuple, yapılandırma değeri, sabit koordinat veya bir fonksiyondan dönen korumalı veri gibi sonradan değişmemesi gereken veriler için uygundur. Tıpkı readonly diziler gibi, yanlışlıkla değiştirilmesi derleme aşamasında engellenir.

let ayar: readonly [string, boolean] = ["debug", true];
console.log(ayar[0]);  // "debug"

Tuple'ın uzunluğu ve sırası zaten sabittir; readonly içerik değişimini de kapatır.

Uygulama readonly tuple ile yapılandırma

config adında readonly bir tuple tanımla; türü readonly [string, number] ve değeri ["port", 3000] olsun. İkinci öğeyi console.log ile yazdır.

Başlangıç kodu

index.ts
// config adında readonly bir tuple tanımla
// birinci öğe string, ikinci öğe number
// değer olarak bir ayar adı ve bir sayı gir
// config'in ikinci öğesini yazdır

Örnek çözüm

index.ts
let config: readonly [string, number] = ["port", 3000];
console.log(config[1]);

Beklenen çıktı

3000

Soru ve cevaplar

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

1 Hangi kod TypeScript derleme hatası verir?

  • let t: readonly [string] = ["x"]; console.log(t[0]);
  • let t: [string, number] = ["a", 1]; console.log(t.length);
  • let t: [number, number] = [1, 2]; t[0] = 5;
  • let t: readonly [number, number] = [1, 2]; t[0] = 5; Doğru cevap

Açıklama: <code>readonly</code> tuple'da öğeye atama yapılamaz; bu yüzden <code>t[0] = 5</code> derleme hatası verir. Diğer seçeneklerde ya <code>readonly</code> yok ya da yalnızca okuma yapılıyor.

2 readonly tuple türünü tamamla

Soru
let ayar: readonly [string, ____] = ["debug", true];
Cevap
let ayar: readonly [string, boolean] = ["debug", true];

Açıklama: İkinci konumun değeri <code>true</code> olduğundan türü <code>boolean</code> olmalı; <code>readonly [string, boolean]</code> doğru tamamdır.

3 readonly ve değiştirme

Kavram Anlamı
readonly [string, number] Değiştirilemez tuple türü
t[0] = "x" Öğeye atama (değiştirme)
readonly tuple Öğeler sonradan atanamaz
readonly number[] Değiştirilemez dizi türü

Başlangıç bölümündeki tüm dersler