CodeBlanks Logo Icon CodeBlanks

Union types

Birden fazla türden birini belirten union'ı öğrenirsin.

Union type nedir?

Union type, bir değerin birden fazla türden birine sahip olabileceğini belirtir. Türler | (pipe) işareti ile ayrılır. Örneğin string | number birleşimi, değerin ya string ya da number olabileceğini söyler.

let id: string | number;
id = "TS-101";
id = 42;

Bu, bir kimliğin hem metin hem sayı biçiminde olabildiği durumlarda pratiktir.

Tür daraltma (narrowing)

Bir union türü kullanırken TypeScript'in hangi türde olduğunu anlaması gerekir. typeof ile türü daraltarak (narrowing) doğru işlemleri yaparsın. Her dalda yalnızca o dala özgü metotlar kullanılır.

function printId(id: string | number) {
  if (typeof id === "string") {
    console.log(id.toUpperCase());
  } else {
    console.log(id * 2);
  }
}
printId("abc");
printId(5);

Uygulama Union ile format fonksiyonu yaz

format(input: string | number): string fonksiyonunu yaz. typeof ile daralt: string ise toUpperCase() döndür, number ise "N-" + input döndür. İki çağrının sonucunu da yazdır.

Başlangıç kodu

index.ts
// format fonksiyonunu yaz
// parametre input: string veya number
// string ise büyük harfe çevir ve döndür
// number ise başına N- ön ekini ekle ve döndür

Örnek çözüm

index.ts
function format(input: string | number): string {
  if (typeof input === "string") {
    return input.toUpperCase();
  } else {
    return "N-" + input;
  }
}

console.log(format("hello"));
console.log(format(42));

Beklenen çıktı

HELLO
N-42

Soru ve cevaplar

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

1 Bir değişkenin string | number türüne sahip olması ne anlama gelir?

index.ts
let id: string | number = 42;
  • Değer hiçbir tür olamaz
  • Değer string veya number olabilir Doğru cevap
  • Değer hem string hem number olmalıdır
  • Değer yalnızca number olabilir

Açıklama: Union, türlerden birini seçmene izin verir; değer belirtilen türlerden herhangi biri olabilir.

2 Union işlecini tamamla

Soru
let id: string ____ = 42;
Cevap
let id: string | number = 42;

Açıklama: Union türleri | işleci ile birleştirir. string | number, değerin ya string ya number olabileceğini söyler.

3 Union parçaları

Kavram Anlamı
| Türleri birleştirir (or)
typeof id === "string" Daraltma (narrowing) yapar
string | number Birleşik tür örneği
null | undefined İki değersizliği birleştirir

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