Alias vs interface
- TypeScript kursu
- Başlangıç
- Ders 57/89
- 4 dk
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
// 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
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
type ID = number | ____;
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 |