CodeBlanks Logo Icon CodeBlanks

Alias vs interface

Type alias ile interface ayrımını öğrenirsin.

Alias vs interface

Hem type hem de interface nesne şekillerini tanımlayabilir. Ancak type daha geneldir: birleşik türler, ilkel türler ve tuple'lar tanımlayabilir. interface nesneler içindir ve extends ile genişletilebilir.

// type ile birleşim
type ID = number | string;
// interface ile nesne
interface Kisi { ad: string }

Type daha geneldir; interface nesnelere özeldir.

Alias ve interface ne zaman kullanılır?

Birleşik türler, kesişim türleri, ilkel türler ve tuple'lar için type kullanılır. Genişletilebilecek veya birleştirilebilecek nesne şekilleri için interface kullanılır. Basit nesne şekilleri için ikisi de çalışır.

// type: birleşim ve tuple
type ID = number | string;
type Nokta = [number, number];
// interface: genişletilebilir nesne
interface Hayvan { ad: string }

İhtiyaca göre type veya interface seçilir.

Uygulama Type ve interface birlikte kullan

ID adında bir type alias tanımla (number | string birleşimi). Kisi adında bir interface tanımla; ad: string ve id: ID özellikleri içersin. kisi adında bir değişkeni Kisi türünde tanımla ve değerini { ad: "Ali", id: 42 } yap. kisi.ad değerini console.log ile yazdır.

Başlangıç kodu

index.ts
// ID adında bir type alias tanımla (number | string birleşimi)
// Kisi adında bir interface tanımla (ad: string, id: ID)
// kisi değişkenini Kisi türünde tanımla, değer: { ad: "Ali", id: 42 }
// kisi.ad değerini yazdır

Örnek çözüm

index.ts
type ID = number | string;
interface Kisi {
    ad: string;
    id: ID;
}
let kisi: Kisi = { ad: "Ali", id: 42 };
console.log(kisi.ad);

Beklenen çıktı

Ali

Soru ve cevaplar

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

1 Hangisi birleşik tür (union) tanımlayabilir?

  • const
  • class
  • interface
  • type Doğru cevap

Açıklama: <code>type</code> anahtar kelimesi birleşim türleri tanımlayabilir (<code>type X = A | B</code>); <code>interface</code> yalnızca nesne şekilleri tanımlar ve birleşim desteklemez.

2 Birleşik türün ikinci yarısını ekle

Soru
type ID = number | ____;
Cevap
type ID = number | string;

Açıklama: Bir kimlik hem sayı hem dize olabileceğinden birleşim <code>number | string</code> olmalıdır; <code>boolean</code> kimlik için anlamsız, <code>void</code> değer türü değil, <code>number</code> ise yinelenmedir.

3 Alias vs interface kavramları

Kavram Anlamı
type X = string | number Birleşik tür (yalnızca type)
interface X { ... } Nesne şekli (genişletilebilir)
type X = string İlkel tür takma adı
Alias vs interface Type daha geneldir

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