Literal types
- TypeScript kursu
- Başlangıç
- Ders 61/89
- 4 dk
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"; // hataBu, 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"); // hataTip 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
// 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
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?
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
let color: "red" | "blue" = ____;
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 |