Ana içeriğe geç
Modül 3 · Ders 1 ders 2Kurstaki 5/14~12 min
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:

TS
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:

TS
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:

TS
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:

TS
// 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

Egzersiz#ts.m3.l1.e1
Denemeler: 0Yükleniyor…

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.

Düzenleyici yükleniyor…
İ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

Egzersiz#ts.m3.l1.e2
Denemeler: 0Yükleniyor…

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).

Düzenleyici yükleniyor…
İ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ı

Egzersiz#ts.m3.l1.e3
Denemeler: 0Yükleniyor…

İ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.

Düzenleyici yükleniyor…
İ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

Egzersiz#ts.m3.l1.e4
Denemeler: 0Yükleniyor…

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.

Düzenleyici yükleniyor…
İ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