Fonksiyonlar & Tip Dönüştürme
Fonksiyonlar & Tip Dönüştürme: TypeScript fonksiyonu, bir vasiyetnamenin koşulları gibidir — 'sana bu iki şeyi (parametreleri) veriyorum, sen de bana şu türden bir şey (dönüş tip
TypeScript fonksiyonu, bir vasiyetnamenin koşulları gibidir — 'sana bu iki şeyi (parametreleri) veriyorum, sen de bana şu türden bir şey (dönüş tipi) vermek zorundasın' der; vaat tutulmazsa imza atılmaz. Peki JavaScript fonksiyonu zaten parametre alıp değer döndürüyorken, neden ayrıca bu tipleri yazıya dökmek gerekir? Çünkü yazılı vaat olmadan, fonksiyonu çağıran kişi neyin geleceğini ancak çalıştırıp deneyerek öğrenir; tipli imza ise bunu çağırmadan, derleme anında söyler — Java'da method imzası zaten zorunluydu, TypeScript aynı vaadi JavaScript fonksiyonlarına ekler. QA'da somut faydası: bir `calculateScore(results: TestResult[]): number` fonksiyonuna yanlışlıkla tek bir obje (dizi değil) geçtiğinizde, tipsiz JavaScript bunu sessizce kabul edip içeride yanlış hesaplar; tipli imza aynı hatayı testi koşturmadan, IDE'de kırmızı çizgiyle gösterir.
Micro Lab: TypeScript kod yazma
TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.
TypeScript fonksiyon desenleri
Her parametreye tip ver — yanlış tip geçilirse derleme hatası
role = 'user' — Java'da overloaded method yerine tek satır
type Validator = (value: string) => boolean — fonksiyonu değer gibi kullan
Tipli fonksiyon tasarımının adımlarını sırala:
Girdi tiplerini belirle
Dönüş tipini belirle
Opsiyonel ve varsayılan parametreleri işaretle
Fonksiyon tipini type alias ile belgele
function createUser(email: string, role: "admin" | "user" = "user") tanımında createUser("alice@test.com") çağrısı geçerli midir?
Evet — role varsayılan değere "user" sahip olduğu için opsiyoneldir