Union Tipler ('|')
Coddy'nin JavaScript Journey'sinin TypeScript'e Giriş bölümünün bir parçası — ders 31 / 73.
Bazen duruma göre farklı türlerde değerler tutabilen bir değişkene ihtiyaç duyarsınız. Örneğin, bir kullanıcı kimliği "user123" gibi bir dize veya 42 gibi bir sayı olarak saklanabilir. TypeScript'in union types (birleşim türleri) özelliği, bir değişkenin belirtilen birkaç türden biri olmasına izin vererek bu sorunu çözer.
Union tipleri, birden fazla tipi birleştirmek için dikey çizgi karakterini (|) kullanır. Söz dizimi doğal olarak "bu VEYA şu" şeklinde okunur:
let userId: string | number;
userId = "user123"; // Geçerli - string
userId = 42; // Geçerli - number
userId = true; // Hata - boolean'a izin verilmezBir birleşimde (union) sadece ilkel türleri değil, herhangi bir türü birleştirebilirsiniz. Bu esneklik, birleşim türlerini özellikle birden fazla girdi formatını kabul etmesi gereken fonksiyon parametreleri için kullanışlı hale getirir:
function displayMessage(content: string | number): void {
console.log("Message: " + content);
}
displayMessage("Hello!"); // string ile çalışır
displayMessage(404); // number ile çalışırUnion types, esnekliği korurken tip güvenliği sağlar - TypeScript, yalnızca belirtilen türlerden biriyle eşleşen değerleri kullanmanızı sağlayarak beklenmedik veri türlerinden kaynaklanan çalışma zamanı hatalarını önler.
Görev
Kolaystring | number tipinde id adında bir parametre kabul eden ve bunu konsola yazdıran printId adında bir fonksiyon oluşturun. Fonksiyonun açık bir dönüş tipi void olmalıdır.
boolean | string tipinde data adında bir parametre kabul eden ve bunu değiştirmeden döndüren processValue adında başka bir fonksiyon oluşturun. Fonksiyonun açık bir dönüş tipi boolean | string olmalıdır.
number | string tipinde input adında bir parametre kabul eden ve formatlanmış bir dize döndüren formatOutput adında üçüncü bir fonksiyon oluşturun. Eğer girdi bir sayıysa, "Number: [input]" döndürün. Eğer girdi bir dizeyse, "Text: [input]" döndürün. Fonksiyonun açık bir dönüş tipi string olmalıdır.
Aşağıdaki girdiler sağlanacaktır:
- Birinci girdi: dize veya sayı olabilen bir değer (
printIdiçin) - İkinci girdi: boolean veya dize olabilen bir değer (
processValueiçin) - Üçüncü girdi: sayı veya dize olabilen bir değer (
formatOutputiçin)
Üç girdiyi okuyun, her fonksiyonu uygun girdiyle çağırın ve çıktıları şu şekilde işleyin:
- Birinci girdi ile
printIdfonksiyonunu çağırın (bu doğrudan yazdıracaktır) - İkinci girdi ile
processValuefonksiyonunu çağırın ve dönen değeri yazdırın - Üçüncü girdi ile
formatOutputfonksiyonunu çağırın ve dönen değeri yazdırın
Not: Birinci girdi bir dize olarak sağlanacaktır, ancak bir sayıyı temsil ediyorsa (örneğin "123"), printId fonksiyonuna geçirmeden önce onu bir sayıya dönüştürün. İkinci girdi bir dize olarak sağlanacaktır, ancak "true" veya "false" ise, onu karşılık gelen boolean değerine dönüştürün. Üçüncü girdi bir dize olarak sağlanacaktır, ancak bir sayıyı temsil ediyorsa, onu bir sayıya dönüştürün.
Kendin dene
import * as fs from "fs";
// Girdileri oku
const stdinBuffer: Buffer = fs.readFileSync(0);
const inputs: string[] = stdinBuffer.toString().trim().split('\n');
const input1 = inputs[0];
const input2 = inputs[1];
const input3 = inputs[2];
// Girdileri uygun türlere dönüştür
const firstInput = isNaN(Number(input1)) ? input1 : Number(input1);
const secondInput = input2 === "true" ? true : input2 === "false" ? false : input2;
const thirdInput = isNaN(Number(input3)) ? input3 : Number(input3);
// TODO: Kodunuzu buraya yazın
// Üç fonksiyonu oluşturun: printId, processValue ve formatOutput
// TODO: Fonksiyonları uygun girdilerle çağırın ve çıktıları işleyinBu 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