Modül dersleri (1/2)
Yazılan İşlevler
İşlevler herhangi bir JavaScript uygulamasının temel yapı taşlarıdır. TypeScript'te, hem giriş argümanlarına hem de dönüş değerlerine tam olarak açıklama ekleyebilir, böylece arayüzlerimizi ve işlev çağrılarımızı son derece güvenli ve kendi kendini belgeleyen hale getirebiliriz.
İsteğe Bağlı ve Varsayılan Parametreler
JavaScript'te her parametre isteğe bağlıdır ve atlanırsa varsayılan olarak undefined olur. TypeScript'te varsayılan olarak bildirilen her parametre zorunludur.
Ancak isteğe bağlı parametreleri soru işaretini (?) kullanarak tanımlayabilir veya varsayılan değerleri doğrudan işlev imzasında belirtebiliriz.
1. İsteğe Bağlı Parametreler
İsteğe bağlı parametreler tüm zorunlu parametrelerden sonraya yerleştirilmelidir:
function greetUser(name: string, title?: string): string {
if (title) {
return `Good morning ${title} ${name}`;
}
return `Hello ${name}`;
}2. Varsayılan Parametreler
Varsayılan değere sahip bir parametre için değer sağlanmazsa, TypeScript onun türünü çıkarır ve belirtilen varsayılanı atar:
function greetUserWithDefault(name: string, prefix: string = 'Hello'): string {
return `${prefix} ${name}`;
}Dinlenme Parametreleri (...args)
Değişken sayıda argümanı kabul etmek istediğimizde rest operatörünü kullanabiliriz. TypeScript'te bu parametreler bir dizi olarak yazılmalıdır:
function sumAll(message: string, ...numbers: number[]): string {
const total = numbers.reduce((sum, n) => sum + n, 0);
return `${message} ${total}`;
}İşlev Türleri (Çağrı İmzaları)
Bir işlevin türünü bağımsız olarak tanımlayabilir ve ardından onu değişken bildirimlerinde veya geri çağırma bağımsız değişkenlerinde yeniden kullanabiliriz:
// Define function type using type alias
type MathOperation = (a: number, b: number) => number;
const add: MathOperation = (x, y) => x + y;
const multiply: MathOperation = (x, y) => x * y;Bu yaklaşım, işlevleri diğer işlevlere argüman olarak aktarırken önemlidir (geri aramalar).
Kendin dene
Alıştırma 1: İsteğe Bağlı Parametreler
FirstName parametresini (string) ve isteğe bağlı lastName parametresini (string) kabul eden formatName adlı bir işlev oluşturun. Soyadı sağlanmışsa 'firstName lastName' değerini döndürün, aksi halde yalnızca 'firstName' değerini döndürün.
İpucu göster
İsteğe bağlı parametrenin, zorunlu olandan sonra lastName?: dizesi kullanılarak bildirildiğini unutmayın.
3 denemeden sonra çözüm mevcut
Alıştırma 2: Varsayılan Parametreler
Bir tabanı (sayı) ve bir üssü (varsayılan değeri 2 olan sayı) kabul eden, güç adında bir işlev oluşturun. İşlev, üssün yükseltilmiş değerini hesaplamalı ve döndürmelidir (Math.pow kullanın).
İpucu göster
İşlev imzasında base: number ve exponent: number = 2 kullanın.
3 denemeden sonra çözüm mevcut
Alıştırma 3: İşlev İmzası
İki sayı parametresini kabul eden ve bir sayı döndüren bir işlevi açıklayan BinaryOp adında bir tür takma adı tanımlayın. Daha sonra, toplamayı uygulayan BinaryOp türünde toplam adında bir sabit bildirin.
İpucu göster
Bir işlev türünün sözdizimi (a: sayı, b: sayı) => sayıdır.
3 denemeden sonra çözüm mevcut
Alıştırma 4: Geri Arama İşlevi
ProcessItems adında iki parametre kabul eden bir işlev oluşturun: items (bir dize dizisi) ve geri çağırma (tek bir dizeyi kabul eden ve hiçbir şey döndürmeyen, yani geçersiz bir işlev). İşlev, öğelerdeki her öğe üzerinde bir for...of döngüsü çalıştırmalı ve bunu geri çağırmaya iletmelidir.
İpucu göster
İmzayı prosesItems(items: string[], callback: (item: string) => void): void olarak bildirin ve geri aramayı çağırmak için bir döngü kullanın.
3 denemeden sonra çözüm mevcut