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 verilirLiteral 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.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
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:
DirectiontüründeplayerDirectionadında bir değişken tanımlayın ve ona"up"değerini atayınGameStatetüründecurrentStateadında bir değişken tanımlayın ve ona"playing"değerini atayınDifficultytüründeselectedDifficultyadı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:
movePlayerfonksiyonunuplayerDirectionile çağırın ve sonucu yazdırınupdateGameStatefonksiyonunucurrentStateile çağırın ve sonucu yazdırınselectedDifficultydeğ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çerliBu, 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ınBu 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
1TS ile Başlarken
TypeScript Nedir?Neden TypeScript Kullanılır?İlk TypeScript KodunuzDerleme Süreci ve HatalarÖzet: TS'ye Giriş4Fonksiyonlarla Çalışmak
Parametre ve Dönüş Değerlerini TiplendirmeArrow Fonksiyonlarını Tiplendirme'void' Dönüş Tipi'?' ile Opsiyonel ParametrelerVarsayılan Parametre DeğerleriRest Parametrelerini TiplendirmeFonksiyon Tiplerini TanımlamaÖzet: Tiplendirilmiş Fonksiyonlar Oluşturma2Temel Tipler
Temel Tipler: str, num, boolean'any' Tipi: Kaçış Yolu'unknown' Tipi'null' ve 'undef' ile ÇalışmakTip Çıkarımı İş BaşındaAçık Tip BelirlemeleriÖzet: Temel Tipler Pratiği5Tipler: Takma Adlar, Unionlar ve Kesişimler
İlkel Tipler için Tip Takma AdlarıUnion Tipler ('|')Union Tipler ile ÇalışmakLiteral TiplerKesişim Tipleri ('&')Tip Takma Adlarını BirleştirmeÖzet: Gelişmiş Tip Kombinasyonları3Veri Yapısı: Diziler ve Tuple
Tipli DizilerDiziler için 'readonly' BelirleyicisiTuple Nedir?Tuple Tanımlama ve ErişmeTuple DestructuringReadonly Tuple'larÇok Boyutlu Tipli DizilerDizilerle Spread OperatörüÖzet: Diziler ve Tuple'lar6Nesneleri ve Interface'leri Tiplendirme
Satır İçi Nesne Tipi BelirtimleriNesneler için Type Alias KullanımıInterface'lere GirişInterface'ler ve Type Alias'ların KarşılaştırılmasıOpsiyonel ve Readonly ÖzelliklerInterface ve Tipleri GenişletmeInterface'lere Metot EklemeÖzet: Nesne Yapılarını Tanımlama