Menu
Coddy logo textTech

Literal Tipler

Coddy'nin JavaScript Journey'sinin TypeScript'e Giriş bölümünün bir parçası — ders 33 / 73.

Literal tipler, bir değişkeni geniş kategoriler yerine tam, belirli değerlerle kısıtlamanıza olanak tanır. Herhangi bir dizeyi kabul etmek yerine, onu yalnızca "left", "right", "up" veya "down" ile sınırlayabilirsiniz.

Literal bir tür, tam değeri türün kendisi olarak kullanır.

Dizeler, sayılar veya booleanlar için literal (sabit) türler oluşturabilirsiniz:

let direction: "left" = "left";  // Sadece "left" değerine izin verilir
let count: 42 = 42;              // Sadece 42 sayısına izin verilir
let isReady: true = true;        // Sadece true değerine izin verilir

Literal tipler, birleşim (union) tipleriyle birleştirildiğinde güçlü hale gelir ve kontrollü bir izin verilen değerler kümesi oluşturur. Bu; yönler, durum kodları veya yapılandırma seçenekleri gibi senaryolar için mükemmeldir:

type Direction = "left" | "right" | "up" | "down";
type Status = "pending" | "approved" | "rejected";

let playerMove: Direction = "up";    // Geçerli
let orderStatus: Status = "pending"; // Geçerli
// let invalid: Direction = "diagonal"; // Hata!

Bu yaklaşım, katı tip güvenliğini korurken size birden fazla seçenek esnekliği sağlar. TypeScript, yazım hatalarını ve geçersiz değerleri derleme zamanında yakalayarak kodunuzu genel dize tipleri kullanmaktan daha güvenilir hale getirir.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

challenge icon

Görev

Kolay

"left" | "right" | "up" | "down" literal türleri için Direction adında bir tür takma adı (type alias) oluşturun.

"menu" | "playing" | "paused" | "gameover" literal türleri için GameState adında bir tür takma adı oluşturun.

"easy" | "medium" | "hard" literal türleri için Difficulty adında bir tür takma adı oluşturun.

Şimdi oluşturduğunuz tür takma adlarını kullanarak aşağıdaki değişkenleri tanımlayın:

  • Direction türünde playerDirection adında bir değişken tanımlayın ve ona "up" değerini atayın
  • GameState türünde currentState adında bir değişken tanımlayın ve ona "playing" değerini atayın
  • Difficulty türünde selectedDifficulty adında bir değişken tanımlayın ve ona "medium" değerini atayın

Direction türünde direction adında bir parametre alan ve bir string döndüren movePlayer adında bir fonksiyon oluşturun. Fonksiyon, "Moving [direction]" formatında bir mesaj döndürmelidir.

GameState türünde state adında bir parametre alan ve bir string döndüren updateGameState adında başka bir fonksiyon oluşturun. Fonksiyon, "Game state: [state]" formatında bir mesaj döndürmelidir.

Fonksiyonlarınızı oluşturduğunuz değişkenlerle çağırın ve sonuçları yazdırın:

  • movePlayer fonksiyonunu playerDirection ile çağırın ve sonucu yazdırın
  • updateGameState fonksiyonunu currentState ile çağırın ve sonucu yazdırın
  • selectedDifficulty değerini yazdırın

Her bir sonucu yukarıda belirtilen sırayla ayrı bir satıra yazdırın.

Kopya kağıdı

Literal tipler, değişkenleri geniş kategoriler yerine tam ve belirli değerlerle kısıtlar:

let direction: "left" = "left";  // Sadece "left" değerine izin verilir
let count: 42 = 42;              // Sadece 42 sayısına izin verilir
let isReady: true = true;        // Sadece true değerine izin verilir

İzin verilen değerlerden oluşan kontrollü kümeler oluşturmak için literal tipleri union (birleşim) tipleriyle birleştirin:

type Direction = "left" | "right" | "up" | "down";
type Status = "pending" | "approved" | "rejected";

let playerMove: Direction = "up";    // Geçerli
let orderStatus: Status = "pending"; // Geçerli

Bu, birden fazla seçenekle esnekliği korurken, yazım hatalarını ve geçersiz değerleri derleme zamanında yakalayarak tip güvenliği sağlar.

Kendin dene

// YAPILACAK: Kodunuzu buraya yazın
// Direction, GameState ve Difficulty için tür takma adları oluşturun
// Tür takma adlarınızı kullanarak değişkenleri bildirin
// movePlayer ve updateGameState fonksiyonlarını oluşturun
// Fonksiyonları çağırın ve sonuçları yazdırın
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

TypeScript'e Giriş bölümündeki tüm dersler