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