CodeBlanks Logo Icon CodeBlanks

Özet - Recursive types

Recursive türlerle bir JSON ağacı modeli yazarsın.

Özet - Recursive types

Bu grupta recursive type'ları öğrendin: kendine başvuran türler bağlı liste ve ağaç gibi iç içe yapıları modeller; DeepPartial ile iç içe nesneler derinlemesine opsiyonel yapılır. Bir JSON ağacı modeli, primitif türlerin union'ı ile dizi ve nesne biçimlerinde kendine başvurur.

type JsonDeger =
  | string | number | boolean | null
  | JsonDeger[]
  | { [k: string]: JsonDeger };

Uygulama JSON ağacı modeli yaz

JsonDeger adında bir recursive union type tanımla: string | number | boolean | null | JsonDeger[] | { [anahtar: string]: JsonDeger }. veri değişkeni JsonDeger türünde ve değeri { ad: "test", yas: 30 } olsun. veri["ad"] değerini console.log ile yazdır.

Başlangıç kodu

index.ts
// JsonDeger adinda recursive union type tanimla
// primitif, dizi ve nesne turlerini birlestir
// veri nesnesini tanimla
// veri["ad"] yazdir

Örnek çözüm

index.ts
type JsonDeger =
  | string
  | number
  | boolean
  | null
  | JsonDeger[]
  | { [anahtar: string]: JsonDeger };
const veri: JsonDeger = { ad: "test", yas: 30 };
console.log(veri["ad"]);

Beklenen çıktı

test

Soru ve cevaplar

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

1 Bir JSON ağacı modelinde dizi elemanlarının türü ne olmalıdır?

  • Yalnızca string
  • JsonDeger (kendisi) Doğru cevap
  • any[]
  • Yalnızca number

Açıklama: JSON dizisinin elemanları yine herhangi bir JSON değeri olabilir; bu yüzden dizi türü JsonDeger[] olarak kendine başvurur.

2 JSON dizisi self-reference

Soru
type JsonDeger =
  | string
  | number
  | boolean
  | null
  | ____[]
  | { [anahtar: string]: JsonDeger };
Cevap
type JsonDeger =
  | string
  | number
  | boolean
  | null
  | JsonDeger[]
  | { [anahtar: string]: JsonDeger };

Açıklama: JSON dizisinin elemanları yine JsonDeger türündedir; bu sayede dizi içinde dizi veya nesne bulunabilir.

3 Recursive types özeti

Kavram Anlamı
JsonDeger[] Dizi elemanı kendisi
{ [k: string]: JsonDeger } Nesne değerleri kendisi
string | number Primitif seçenekler
DerinPartial İç içe opsiyonel

İleri seviye bölümündeki tüm dersler