CodeBlanks Logo Icon CodeBlanks

Meydan okuma 3: Birleşim

Union ve intersection'ı kullanarak bir model tasarlersın.

Meydan okuma 3: Birleşim

Bu meydan okumada union (|) ve intersection (&) operatörlerini kullanarak renk ve para modelleri tasarlayacaksın. Önce literal birleşim ile renkleri, sonra intersection ile para türünü tanımlayacaksın.

Uygulama Color ve hex fonksiyonu

Color türünü "red" | "green" | "blue" olarak tanımla. hex(c: Color): string fonksiyonu yaz: "red" için "#ff0000", "green" için "#00ff00", "blue" için "#0000ff" döndür. hex("red") ve hex("blue") sonuçlarını yazdır.

Başlangıç kodu

index.ts
// Color türü: "red", "green", "blue"
// hex(c: Color): string yaz
// red -> "#ff0000", green -> "#00ff00", blue -> "#0000ff"
// iki çağrıyı yazdır

Örnek çözüm

index.ts
type Color = "red" | "green" | "blue";

function hex(c: Color): string {
  if (c === "red") {
    return "#ff0000";
  } else if (c === "green") {
    return "#00ff00";
  } else {
    return "#0000ff";
  }
}

console.log(hex("red"));
console.log(hex("blue"));

Beklenen çıktı

#ff0000
#0000ff

Uygulama Price ve Currency birleştir

Price arayüzünü tanımla: amount: number. Currency arayüzünü tanımla: code: string. Money türünü Price & Currency olarak tanımla. Bir Money nesnesi oluştur ve code alanını yazdır.

Başlangıç kodu

index.ts
// Price arayüzü: amount: number
// Currency arayüzü: code: string
// Money = Price & Currency
// bir Money oluştur ve code yazdır

Örnek çözüm

index.ts
interface Price { amount: number; }
interface Currency { code: string; }

type Money = Price & Currency;

const m: Money = { amount: 100, code: "TRY" };
console.log(m.code);

Beklenen çıktı

TRY

Soru ve cevaplar

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

1 Price & Currency ifadesi ne tür üretir?

  • Price veya Currency
  • Price ve Currency birleşimi Doğru cevap
  • Sadece Price
  • Sadece Currency

Açıklama: Intersection (&), her iki türün tüm alanlarını birleştirir. Sonuç hem Price hem Currency'nin alanlarını içerir.

2 Union operatörünü tamamla

Soru
type Color = "red" ____ "green" | "blue";
Cevap
type Color = "red" | "green" | "blue";

Açıklama: Color üç literalın pipe ile birleşimidir. & kesişimdir (never olur), || ve + tür operatörü değildir.

3 Birleşim operatör parçaları

Kavram Anlamı
| Union (veya)
& Intersection (ve)
"red" | "green" | "blue" Üç renk literalı
Price & Currency Fiyat ve para birimi

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