CodeBlanks Logo Icon CodeBlanks

Özet - Interface'ler

Interface'lerle bir ürün kataloğu modeli yazarsın.

Özet - Interface'ler

Interface'ler nesne şekillerini sözleşme olarak tanımlar, özelliklere tür verir (isteğe bağlı ve readonly dahil) ve nesneler için özel bir tanımlama aracıdır. type ile karşılaştırıldığında interface nesnelere özeldir ve genişletilebilir.

interface Urun {
  readonly id: number;
  ad: string;
  fiyat?: number;
}

Bu özellikler birlikte güçlü ve esnek veri modelleri oluşturur.

Uygulama Ürün kataloğu modeli

Urun adında bir interface tanımla; readonly id: number, ad: string ve fiyat?: number özellikleri içersin. urun adında bir değişkeni Urun türünde tanımla ve değerini { id: 1, ad: "defter", fiyat: 20 } yap. urun.ad değerini console.log ile yazdır.

Başlangıç kodu

index.ts
// Urun adında bir interface tanımla
// readonly id (number), ad (string), fiyat? (number) özellikleri içersin
// urun değişkenini Urun türünde tanımla
// değer: id 1, ad "defter", fiyat 20
// urun.ad değerini yazdır

Örnek çözüm

index.ts
interface Urun {
    readonly id: number;
    ad: string;
    fiyat?: number;
}
let urun: Urun = { id: 1, ad: "defter", fiyat: 20 };
console.log(urun.ad);

Beklenen çıktı

defter

Soru ve cevaplar

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

1 <code>interface</code>, <code>type</code>'a ne zaman tercih edilmelidir?

  • İlkel tür takma adı tanımlarken
  • Genişletilebilecek nesne şekli tanımlarken Doğru cevap
  • Kesişim türü tanımlarken
  • Birleşik tür tanımlarken

Açıklama: <code>interface</code>, genişletilebilecek (<code>extends</code>) nesne şekilleri için tercih edilir; birleşik ve kesişim türleri yalnızca <code>type</code> ile tanımlanabilir.

2 İsteğe bağlı özellik türünü tamamla

Soru
interface Urun {
  readonly id: number;
  ad: string;
  fiyat?: ____;
}
Cevap
interface Urun {
  readonly id: number;
  ad: string;
  fiyat?: number;
}

Açıklama: Ürün fiyatı bir sayıdır; <code>fiyat?: number</code> doğru tamamdır. <code>string</code> ve <code>boolean</code> fiyat için yanlış tür, <code>void</code> ise özellik türü değildir.

3 Interface özeti

Kavram Anlamı
interface X { ... } Nesne şekli sözleşmesi
ad?: string Atlanabilir özellik
readonly id: number İlk atamadan sonra sabit
interface vs type Interface genişletilebilir

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