CodeBlanks Logo Icon CodeBlanks

Literal types

Sabit değer türleri olan literal types'ı öğrenirsin.

Literal type nedir?

Literal type, exact bir değeri tür olarak belirten türdür. Birleşim ile birleştiğinde, yalnızca belirli değerlere izin veren kesin türler oluşturursun.

let direction: "up" | "down";
direction = "up";
direction = "left";  // hata

Bu, bir değişkenin yalnızca birkaç sabit değer alabildiği durumlarda kullanışlıdır.

Literal birleşimler

Birden fazla literal türü | ile birleştirerek sınırlı değer kümesi oluşturursun. Bu, string enum'a benzer ama daha basit bir alternatif sunar.

type Status = "open" | "closed" | "pending";
function setStatus(s: Status) {
  // ...
}
setStatus("open");
setStatus("done");  // hata

Tip güvenliği derleme zamanında sağlanır.

Uygulama Literal birleşimi ile rol tanımla

Role türünü "admin" | "user" | "guest" olarak tanımla. greet(role: Role): string fonksiyonu yaz: admin için "Welcome, admin", user için "Hello, user", guest için "Hi, guest" döndür. Üç çağrının da sonucunu yazdır.

Başlangıç kodu

index.ts
// Role türünü tanımla: admin, user, guest
// greet(role: Role): string döndürür
// admin ise karşılama mesajı
// user ise selamlama mesajı
// guest ise kısa mesaj
// üç çağrıyı da yazdır

Örnek çözüm

index.ts
type Role = "admin" | "user" | "guest";

function greet(role: Role): string {
  if (role === "admin") {
    return "Welcome, admin";
  } else if (role === "user") {
    return "Hello, user";
  } else {
    return "Hi, guest";
  }
}

console.log(greet("admin"));
console.log(greet("user"));
console.log(greet("guest"));

Beklenen çıktı

Welcome, admin
Hello, user
Hi, guest

Soru ve cevaplar

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

1 Aşağıdakilerden hangisi bir literal type örneğidir?

index.ts
let direction: ??? = "left";
  • string | number
  • "left" | "right" Doğru cevap
  • Object
  • string

Açıklama: Literal type, exact bir değeri (örneğin "left" veya 42) tür olarak kullanır. "left" | "right" iki string literalın birleşimidir.

2 Literal değeri tamamla

Soru
let color: "red" | "blue" = ____;
Cevap
let color: "red" | "blue" = "red";

Açıklama: Yalnızca "red" veya "blue" izin verilir. "green", "yellow" ve "black" kümede yok; bu yüzden derleme hatası verir.

3 Literal parçaları

Kavram Anlamı
"up" Tek bir string literal
42 Tek bir number literal
"left" | "right" İki string literalın birleşimi
type Status = "open" | "closed" Literal birleşiminden oluşan tür

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