CodeBlanks Logo Icon CodeBlanks

Optional properties

İsteğe bağlı özellikleri ? ile öğrenirsin.

Optional properties

Bazı özellikler her zaman bulunmayabilir. Özellik adından sonra ? koyarak isteğe bağlı yaparsın. İsteğe bağlı özellik nesnede bulunabilir veya bulunmayabilir.

let kisi: { ad: string; tel?: string } = {
  ad: "Ali"
};  // tel yok, geçerli

? ile özellik isteğe bağlı olur ve atlanabilir.

İsteğe bağlı özelliğe erişim

İsteğe bağlı özelliğe eriştiğinde, değeri ayarlanmamışsa undefined olabilir. Kullanmadan önce tanımlı olup olmadığını kontrol etmek güvenlidir.

let kisi: { ad: string; tel?: string } = {
  ad: "Ali"
};
console.log(kisi.tel);  // undefined

İsteğe bağlı özelliklerin değeri undefined olabilir.

Uygulama İsteğe bağlı özellikli nesne

kisi adında bir değişken tanımla; türü { ad: string; tel?: string } ve değeri { ad: "Can", tel: "555" } olsun. kisi.tel değerini console.log ile yazdır.

Başlangıç kodu

index.ts
// kisi adında bir nesne tanımla
// ad özelliği zorunlu dize, tel özelliği isteğe bağlı dize olsun
// ad değeri "Can", tel değeri "555" olsun
// kisi.tel değerini yazdır

Örnek çözüm

index.ts
let kisi: { ad: string; tel?: string } = { ad: "Can", tel: "555" };
console.log(kisi.tel);

Beklenen çıktı

555

Soru ve cevaplar

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

1 <code>tel?: string</code> ne anlama gelir?

  • tel özelliğine atama yapılamaz
  • tel özelliği isteğe bağlıdır ve bulunmayabilir Doğru cevap
  • tel özelliği sayı türündedir
  • tel özelliği zorunlu olarak dize olmalıdır

Açıklama: <code>?</code> işareti özelliği isteğe bağlı yapar; <code>tel?: string</code>, <code>tel</code> özelliğinin bulunabileceğini veya bulunmayabileceğini belirtir.

2 Özelliği isteğe bağlı yap

Soru
let urun: { ad: string; indirim____: number } = { ad: "kalem" };
Cevap
let urun: { ad: string; indirim?: number } = { ad: "kalem" };

Açıklama: Değerde <code>indirim</code> olmadığından özelliğin isteğe bağlı olması gerekir; <code>?</code> işareti bunu sağlar ve eksik özelliğe izin verir.

3 Optional property kavramları

Kavram Anlamı
tel?: string İsteğe bağlı dize özelliği
tel: string Zorunlu dize özelliği
? (özellik adından sonra) Özelliği isteğe bağlı yapar
Optional property Özellik bulunmayabilir

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